diff --git a/compiler/rustc_resolve/src/ident.rs b/compiler/rustc_resolve/src/ident.rs index 1c53d5d03fd6..069018139145 100644 --- a/compiler/rustc_resolve/src/ident.rs +++ b/compiler/rustc_resolve/src/ident.rs @@ -638,6 +638,13 @@ fn resolve_ident_in_scope<'r>( Err(ControlFlow::Break(..)) => return decl, } } + Scope::ModuleGlobs(module, _) + if let ModuleKind::Def(_, def_id, _) = module.kind + && !def_id.is_local() => + { + // Fast path: external module decoding only creates non-glob declarations. + Err(Determined) + } Scope::ModuleGlobs(module, derive_fallback_lint_id) => { let (adjusted_parent_scope, adjusted_finalize) = if matches!( scope_set,