Skip to content

Commit 7161530

Browse files
committed
Auto merge of #28406 - petrochenkov:primitive, r=eddyb
This was missing from #27451 r? @eddyb
2 parents 6d154af + cfa2925 commit 7161530

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/librustc_resolve/lib.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2211,13 +2211,27 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
22112211

22122212
ItemUse(ref view_path) => {
22132213
// check for imports shadowing primitive types
2214-
if let hir::ViewPathSimple(ident, _) = view_path.node {
2215-
match self.def_map.borrow().get(&item.id).map(|d| d.full_def()) {
2214+
let check_rename = |id, ident: Ident| {
2215+
match self.def_map.borrow().get(&id).map(|d| d.full_def()) {
22162216
Some(DefTy(..)) | Some(DefStruct(..)) | Some(DefTrait(..)) | None => {
22172217
self.check_if_primitive_type_name(ident.name, item.span);
22182218
}
22192219
_ => {}
22202220
}
2221+
};
2222+
2223+
match view_path.node {
2224+
hir::ViewPathSimple(ident, _) => {
2225+
check_rename(item.id, ident);
2226+
}
2227+
hir::ViewPathList(_, ref items) => {
2228+
for item in items {
2229+
if let Some(ident) = item.node.rename() {
2230+
check_rename(item.node.id(), ident);
2231+
}
2232+
}
2233+
}
2234+
_ => {}
22212235
}
22222236
}
22232237

src/test/compile-fail/issue-20427.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ mod char {
4747
//~^ ERROR user-defined types or type parameters cannot shadow the primitive types
4848
use super::bool_ as bool;
4949
//~^ ERROR user-defined types or type parameters cannot shadow the primitive types
50+
use super::{bool_ as str};
51+
//~^ ERROR user-defined types or type parameters cannot shadow the primitive types
5052
use super::char_ as char;
5153
}
5254
}

0 commit comments

Comments
 (0)