Skip to content

Commit 29791ad

Browse files
committed
Minor cleanup.
1 parent 5a02480 commit 29791ad

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

src/librustc_resolve/build_reduced_graph.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -501,11 +501,9 @@ impl<'b> Resolver<'b> {
501501
})
502502
}
503503

504-
pub fn get_macro(&mut self, binding: &'b NameBinding<'b>) -> Rc<SyntaxExtension> {
505-
let def_id = match binding.kind {
506-
NameBindingKind::Def(Def::Macro(def_id)) => def_id,
507-
NameBindingKind::Import { binding, .. } => return self.get_macro(binding),
508-
NameBindingKind::Ambiguity { b1, .. } => return self.get_macro(b1),
504+
pub fn get_macro(&mut self, def: Def) -> Rc<SyntaxExtension> {
505+
let def_id = match def {
506+
Def::Macro(def_id) => def_id,
509507
_ => panic!("Expected Def::Macro(..)"),
510508
};
511509
if let Some(ext) = self.macro_map.get(&def_id) {

src/librustc_resolve/lib.rs

+8
Original file line numberDiff line numberDiff line change
@@ -925,6 +925,14 @@ impl<'a> NameBinding<'a> {
925925
}
926926
}
927927

928+
fn get_macro(&self, resolver: &mut Resolver<'a>) -> Rc<SyntaxExtension> {
929+
match self.kind {
930+
NameBindingKind::Import { binding, .. } => binding.get_macro(resolver),
931+
NameBindingKind::Ambiguity { b1, .. } => b1.get_macro(resolver),
932+
_ => resolver.get_macro(self.def()),
933+
}
934+
}
935+
928936
// We sometimes need to treat variants as `pub` for backwards compatibility
929937
fn pseudo_vis(&self) -> ty::Visibility {
930938
if self.is_variant() { ty::Visibility::Public } else { self.vis }

src/librustc_resolve/macros.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ impl<'a> base::Resolver for Resolver<'a> {
193193
fn find_attr_invoc(&mut self, attrs: &mut Vec<ast::Attribute>) -> Option<ast::Attribute> {
194194
for i in 0..attrs.len() {
195195
match self.builtin_macros.get(&attrs[i].name()).cloned() {
196-
Some(binding) => match *self.get_macro(binding) {
196+
Some(binding) => match *binding.get_macro(self) {
197197
MultiModifier(..) | MultiDecorator(..) | SyntaxExtension::AttrProcMacro(..) => {
198198
return Some(attrs.remove(i))
199199
}
@@ -215,11 +215,11 @@ impl<'a> base::Resolver for Resolver<'a> {
215215

216216
let invocation = self.invocations[&scope];
217217
self.current_module = invocation.module.get();
218-
let result = match self.resolve_legacy_scope(&invocation.legacy_scope, name, false) {
219-
Some(MacroBinding::Legacy(binding)) => Ok(binding.ext.clone()),
220-
Some(MacroBinding::Modern(binding)) => Ok(self.get_macro(binding)),
218+
let ext = match self.resolve_legacy_scope(&invocation.legacy_scope, name, false) {
219+
Some(MacroBinding::Legacy(binding)) => binding.ext.clone(),
220+
Some(MacroBinding::Modern(binding)) => binding.get_macro(self),
221221
None => match self.resolve_in_item_lexical_scope(name, MacroNS, None) {
222-
Some(binding) => Ok(self.get_macro(binding)),
222+
Some(binding) => binding.get_macro(self),
223223
None => return Err(if force {
224224
let msg = format!("macro undefined: '{}!'", name);
225225
let mut err = self.session.struct_span_err(path.span, &msg);
@@ -236,7 +236,7 @@ impl<'a> base::Resolver for Resolver<'a> {
236236
self.current_module.legacy_macro_resolutions.borrow_mut()
237237
.push((scope, name, path.span));
238238
}
239-
result
239+
Ok(ext)
240240
}
241241
}
242242

0 commit comments

Comments
 (0)