From c064630e77a9e14040176aa8e8eea67f7adcc643 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Fri, 4 Oct 2019 01:44:57 +0300 Subject: [PATCH] resolve: `Scope::DeriveHelpers` -> `Scope::DeriveHelpersCompat` These helpers are resolved before their respective derives through a kind of look ahead into future expansions. Some of these will migrate to proper resolution, others will be deprecated. ``` #[trait_helper] // Deprecate #[derive(Trait)] #[trait_helper] // Migrate to proper resolution ``` --- src/librustc_resolve/diagnostics.rs | 2 +- src/librustc_resolve/lib.rs | 8 ++++---- src/librustc_resolve/macros.rs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/librustc_resolve/diagnostics.rs b/src/librustc_resolve/diagnostics.rs index 1ebe9b5e120..4efbc5a6405 100644 --- a/src/librustc_resolve/diagnostics.rs +++ b/src/librustc_resolve/diagnostics.rs @@ -368,7 +368,7 @@ fn early_lookup_typo_candidate( let mut suggestions = Vec::new(); self.visit_scopes(scope_set, parent_scope, ident, |this, scope, use_prelude, _| { match scope { - Scope::DeriveHelpers => { + Scope::DeriveHelpersCompat => { let res = Res::NonMacroAttr(NonMacroAttrKind::DeriveHelper); if filter_fn(res) { for derive in parent_scope.derives { diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 47e8cf80a05..2779924d485 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -97,7 +97,7 @@ fn determined(determined: bool) -> Determinacy { /// but not for late resolution yet. #[derive(Clone, Copy)] enum Scope<'a> { - DeriveHelpers, + DeriveHelpersCompat, MacroRules(LegacyScope<'a>), CrateRoot, Module(Module<'a>), @@ -1477,14 +1477,14 @@ fn visit_scopes( let mut scope = match ns { _ if is_absolute_path => Scope::CrateRoot, TypeNS | ValueNS => Scope::Module(module), - MacroNS => Scope::DeriveHelpers, + MacroNS => Scope::DeriveHelpersCompat, }; let mut ident = ident.modern(); let mut use_prelude = !module.no_implicit_prelude; loop { let visit = match scope { - Scope::DeriveHelpers => true, + Scope::DeriveHelpersCompat => true, Scope::MacroRules(..) => true, Scope::CrateRoot => true, Scope::Module(..) => true, @@ -1505,7 +1505,7 @@ fn visit_scopes( } scope = match scope { - Scope::DeriveHelpers => + Scope::DeriveHelpersCompat => Scope::MacroRules(parent_scope.legacy), Scope::MacroRules(legacy_scope) => match legacy_scope { LegacyScope::Binding(binding) => Scope::MacroRules( diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs index 2d125a459c8..0d6dd5a7f10 100644 --- a/src/librustc_resolve/macros.rs +++ b/src/librustc_resolve/macros.rs @@ -498,7 +498,7 @@ struct Flags: u8 { Flags::empty(), )); let result = match scope { - Scope::DeriveHelpers => { + Scope::DeriveHelpersCompat => { let mut result = Err(Determinacy::Determined); for derive in parent_scope.derives { let parent_scope = &ParentScope { derives: &[], ..*parent_scope }; -- 2.44.0