Skip to content

Commit 1232141

Browse files
committed
resolve: Remove derive fallback lint id from ScopeSet::Late
1 parent 54ca810 commit 1232141

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

compiler/rustc_resolve/src/diagnostics.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,11 +1020,11 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
10201020
&mut self,
10211021
suggestions: &mut Vec<TypoSuggestion>,
10221022
scope_set: ScopeSet<'ra>,
1023-
parent_scope: &ParentScope<'ra>,
1023+
ps: &ParentScope<'ra>,
10241024
ctxt: SyntaxContext,
10251025
filter_fn: &impl Fn(Res) -> bool,
10261026
) {
1027-
self.cm().visit_scopes(scope_set, parent_scope, ctxt, |this, scope, use_prelude, _| {
1027+
self.cm().visit_scopes(scope_set, ps, ctxt, None, |this, scope, use_prelude, _| {
10281028
match scope {
10291029
Scope::DeriveHelpers(expn_id) => {
10301030
let res = Res::NonMacroAttr(NonMacroAttrKind::DeriveHelper);
@@ -1475,6 +1475,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
14751475
ScopeSet::Macro(MacroKind::Derive),
14761476
&parent_scope,
14771477
ident.span.ctxt(),
1478+
None,
14781479
|this, scope, _use_prelude, _ctxt| {
14791480
let Scope::Module(m, _) = scope else {
14801481
return None;

compiler/rustc_resolve/src/ident.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
4949
scope_set: ScopeSet<'ra>,
5050
parent_scope: &ParentScope<'ra>,
5151
ctxt: SyntaxContext,
52+
derive_fallback_lint_id: Option<NodeId>,
5253
mut visitor: impl FnMut(
5354
&mut CmResolver<'r, 'ra, 'tcx>,
5455
Scope<'ra>,
@@ -193,10 +194,6 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
193194
},
194195
Scope::Module(module, prev_lint_id) => {
195196
use_prelude = !module.no_implicit_prelude;
196-
let derive_fallback_lint_id = match scope_set {
197-
ScopeSet::Late(.., lint_id) => lint_id,
198-
_ => None,
199-
};
200197
match self.hygienic_lexical_parent(module, &mut ctxt, derive_fallback_lint_id) {
201198
Some((parent_module, lint_id)) => {
202199
Scope::Module(parent_module, lint_id.or(prev_lint_id))
@@ -354,7 +351,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
354351
.cm()
355352
.resolve_ident_in_scope_set(
356353
orig_ident,
357-
ScopeSet::Late(ns, finalize.map(|finalize| finalize.node_id)),
354+
ScopeSet::Late(ns),
358355
parent_scope,
359356
finalize,
360357
finalize.is_some(),
@@ -434,10 +431,15 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
434431
}
435432

436433
// Go through all the scopes and try to resolve the name.
434+
let derive_fallback_lint_id = match (finalize, scope_set) {
435+
(Some(finalize), ScopeSet::Late(..)) => Some(finalize.node_id),
436+
_ => None,
437+
};
437438
let break_result = self.visit_scopes(
438439
scope_set,
439440
parent_scope,
440441
orig_ident.span.ctxt(),
442+
derive_fallback_lint_id,
441443
|this, scope, use_prelude, ctxt| {
442444
let ident = Ident::new(orig_ident.name, orig_ident.span.with_ctxt(ctxt));
443445
let result = match scope {

compiler/rustc_resolve/src/late/diagnostics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2463,7 +2463,7 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
24632463
let parent_scope = &ParentScope { module, ..self.parent_scope };
24642464
self.r.add_scope_set_candidates(
24652465
&mut names,
2466-
ScopeSet::Late(ns, None),
2466+
ScopeSet::Late(ns),
24672467
parent_scope,
24682468
ctxt,
24692469
filter_fn,

compiler/rustc_resolve/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ enum ScopeSet<'ra> {
159159
/// All scopes with macro namespace and the given macro kind restriction.
160160
Macro(MacroKind),
161161
/// All scopes with the given namespace, used for partially performing late resolution.
162-
/// The node id enables lints and is used for reporting them.
163-
Late(Namespace, Option<NodeId>),
162+
Late(Namespace),
164163
}
165164

166165
/// Everything you need to know about a name's location to resolve it.
@@ -1881,7 +1880,8 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
18811880
}
18821881
}
18831882

1884-
self.cm().visit_scopes(ScopeSet::All(TypeNS), parent_scope, ctxt, |this, scope, _, _| {
1883+
let scope_set = ScopeSet::All(TypeNS);
1884+
self.cm().visit_scopes(scope_set, parent_scope, ctxt, None, |this, scope, _, _| {
18851885
match scope {
18861886
Scope::Module(module, _) => {
18871887
this.get_mut().traits_in_module(module, assoc_item, &mut found_traits);

0 commit comments

Comments
 (0)