Skip to content

Commit f2938c5

Browse files
committed
Auto merge of #152996 - mu001999-contrib:feat/extend-import-self, r=petrochenkov
Replacing `self` overwriting with proper resolution Reference PR: - rust-lang/reference#2221 As a follow-up PR to rust-lang/rust#146972 ([step 1](rust-lang/rust#152996 (comment))), after this PR: ~~1. Trailing `self` can appear in paths (as the consensus in rust-lang/rust#146972 (comment) (in future) ~~2. [E0429](https://doc.rust-lang.org/stable/error_codes/E0429.html#error-code-e0429) will be no longer emitted, `use ...::self [as target];` will be equivalent to `use ...::{self [as target]};`~~ (in future) 3. Things like `struct S {}; use S::{self as Other};` will be rejected --- This PR used to add a new lint `redundant_self`, which would lint `use ...::self [as target];` and `use ...::{self [as target]};`, and fixes all warnings emitted by this lint. But this lint and clippy lint [unnecessary_self_imports](https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_self_imports) have some overlap. And `use std::io::self;` is not equivalent to `use std::io` in fact for now, the new lint will also cause the following known issue: > Removing `::{self}` will cause any non-module items at the same path to also be imported. This might cause a naming conflict (rust-lang/rustfmt#3568). So I removed this lint, and I think what it does should be done by extending the clippy lint `unnecessary_self_imports`. r? petrochenkov
2 parents e5b9d9d + ec550d4 commit f2938c5

0 file changed

File tree

    0 commit comments

    Comments
     (0)