diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-11-05 01:00:31 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-11-18 13:51:17 +0300 |
| commit | 9d7d9ada6d108c113ea8728be97dbc19345e9892 (patch) | |
| tree | 871c2faa7ead7ca6585325b90c06c75ee67aa0f6 | |
| parent | e6739fe27448e1f85820d80a6a75292b39446d08 (diff) | |
| download | rust-9d7d9ada6d108c113ea8728be97dbc19345e9892.tar.gz rust-9d7d9ada6d108c113ea8728be97dbc19345e9892.zip | |
resolve: Simplify ambiguity checking for built-in attributes
| -rw-r--r-- | src/librustc_resolve/macros.rs | 13 | ||||
| -rw-r--r-- | src/test/ui-fulldeps/proc-macro/ambiguous-builtin-attrs.stderr | 12 |
2 files changed, 8 insertions, 17 deletions
diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs index 4348f91a63e..05a2ad23e64 100644 --- a/src/librustc_resolve/macros.rs +++ b/src/librustc_resolve/macros.rs @@ -684,7 +684,7 @@ impl<'a, 'cl> Resolver<'a, 'cl> { let binding = (Def::NonMacroAttr(NonMacroAttrKind::Builtin), ty::Visibility::Public, ident.span, Mark::root()) .to_name_binding(self.arenas); - Ok((binding, Flags::PRELUDE, Flags::empty())) + Ok((binding, Flags::PRELUDE, Flags::all())) } else { Err(Determinacy::Determined) } @@ -917,18 +917,9 @@ impl<'a, 'cl> Resolver<'a, 'cl> { let builtin_attrs = mem::replace(&mut *module.builtin_attrs.borrow_mut(), Vec::new()); for (ident, parent_scope) in builtin_attrs { - let binding = self.early_resolve_ident_in_lexical_scope( + let _ = self.early_resolve_ident_in_lexical_scope( ident, MacroNS, Some(MacroKind::Attr), false, &parent_scope, true, true, ident.span ); - if let Ok(binding) = binding { - if binding.def_ignoring_ambiguity() != - Def::NonMacroAttr(NonMacroAttrKind::Builtin) { - let builtin_binding = (Def::NonMacroAttr(NonMacroAttrKind::Builtin), - ty::Visibility::Public, ident.span, Mark::root()) - .to_name_binding(self.arenas); - self.report_ambiguity_error(ident, binding, builtin_binding); - } - } } } diff --git a/src/test/ui-fulldeps/proc-macro/ambiguous-builtin-attrs.stderr b/src/test/ui-fulldeps/proc-macro/ambiguous-builtin-attrs.stderr index ea867faf47b..0720ccb7cf9 100644 --- a/src/test/ui-fulldeps/proc-macro/ambiguous-builtin-attrs.stderr +++ b/src/test/ui-fulldeps/proc-macro/ambiguous-builtin-attrs.stderr @@ -1,3 +1,9 @@ +error[E0425]: cannot find value `NonExistent` in this scope + --> $DIR/ambiguous-builtin-attrs.rs:30:5 + | +LL | NonExistent; //~ ERROR cannot find value `NonExistent` in this scope + | ^^^^^^^^^^^ not found in this scope + error[E0659]: `repr` is ambiguous --> $DIR/ambiguous-builtin-attrs.rs:9:3 | @@ -88,12 +94,6 @@ LL | #![feature(decl_macro)] //~ ERROR `feature` is ambiguous | ^^^^^^^ = note: consider adding an explicit import of `feature` to disambiguate -error[E0425]: cannot find value `NonExistent` in this scope - --> $DIR/ambiguous-builtin-attrs.rs:30:5 - | -LL | NonExistent; //~ ERROR cannot find value `NonExistent` in this scope - | ^^^^^^^^^^^ not found in this scope - error: aborting due to 6 previous errors Some errors occurred: E0425, E0659. |
