Skip to content

Commit 6c4b551

Browse files
committed
Cleanup Resolver::disallowed_shadowing.
1 parent f5a702d commit 6c4b551

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/librustc_resolve/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ use std::mem::replace;
7777
use std::rc::Rc;
7878

7979
use resolve_imports::{ImportDirective, NameResolution};
80-
use macros::{InvocationData, LegacyBinding, LegacyScope};
80+
use macros::{InvocationData, LegacyBinding};
8181

8282
// NB: This module needs to be declared first so diagnostics are
8383
// registered before they are used.
@@ -1067,7 +1067,7 @@ pub struct Resolver<'a> {
10671067

10681068
privacy_errors: Vec<PrivacyError<'a>>,
10691069
ambiguity_errors: Vec<AmbiguityError<'a>>,
1070-
disallowed_shadowing: Vec<(Name, Span, LegacyScope<'a>)>,
1070+
disallowed_shadowing: Vec<&'a LegacyBinding<'a>>,
10711071

10721072
arenas: &'a ResolverArenas<'a>,
10731073
dummy_binding: &'a NameBinding<'a>,
@@ -3364,11 +3364,11 @@ impl<'a> Resolver<'a> {
33643364

33653365
fn report_shadowing_errors(&mut self) {
33663366
let mut reported_errors = FnvHashSet();
3367-
for (name, span, scope) in replace(&mut self.disallowed_shadowing, Vec::new()) {
3368-
if self.resolve_macro_name(scope, name, false).is_some() &&
3369-
reported_errors.insert((name, span)) {
3370-
let msg = format!("`{}` is already in scope", name);
3371-
self.session.struct_span_err(span, &msg)
3367+
for binding in replace(&mut self.disallowed_shadowing, Vec::new()) {
3368+
if self.resolve_macro_name(binding.parent, binding.name, false).is_some() &&
3369+
reported_errors.insert((binding.name, binding.span)) {
3370+
let msg = format!("`{}` is already in scope", binding.name);
3371+
self.session.struct_span_err(binding.span, &msg)
33723372
.note("macro-expanded `macro_rules!`s may not shadow \
33733373
existing macros (see RFC 1560)")
33743374
.emit();

src/librustc_resolve/macros.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ impl<'a> LegacyScope<'a> {
7474
}
7575

7676
pub struct LegacyBinding<'a> {
77-
parent: LegacyScope<'a>,
78-
name: ast::Name,
77+
pub parent: LegacyScope<'a>,
78+
pub name: ast::Name,
7979
ext: Rc<SyntaxExtension>,
80-
span: Span,
80+
pub span: Span,
8181
}
8282

8383
pub type LegacyImports = FnvHashMap<ast::Name, (Rc<SyntaxExtension>, Span)>;
@@ -213,7 +213,7 @@ impl<'a> Resolver<'a> {
213213
LegacyScope::Binding(binding) => {
214214
if binding.name == name {
215215
if record_used && relative_depth > 0 {
216-
self.disallowed_shadowing.push((name, binding.span, binding.parent));
216+
self.disallowed_shadowing.push(binding);
217217
}
218218
return Some(binding.ext.clone());
219219
}

0 commit comments

Comments
 (0)