@@ -23,7 +23,7 @@ use {resolve_error, resolve_struct_error, ResolutionError}; |
|
|
23 |
23 |
|
24 |
24 |
use rustc::middle::cstore::LoadedMacro; |
25 |
25 |
use rustc::hir::def::*; |
26 |
|
-use rustc::hir::def_id::{CrateNum, CRATE_DEF_INDEX, DefId}; |
|
26 |
+use rustc::hir::def_id::{CrateNum, BUILTIN_MACROS_CRATE, CRATE_DEF_INDEX, DefId}; |
27 |
27 |
use rustc::ty; |
28 |
28 |
|
29 |
29 |
use std::cell::Cell; |
@@ -496,6 +496,9 @@ impl<'a> Resolver<'a> { |
|
|
496 |
496 |
let def_id = self.macro_defs[&expansion]; |
497 |
497 |
if let Some(id) = self.definitions.as_local_node_id(def_id) { |
498 |
498 |
self.local_macro_def_scopes[&id] |
|
499 |
+} else if def_id.krate == BUILTIN_MACROS_CRATE { |
|
500 |
+// FIXME(jseyfried): This happens when `include!()`ing a `$crate::` path, c.f, #40469. |
|
501 |
+self.graph_root |
499 |
502 |
} else { |
500 |
503 |
let module_def_id = ty::DefIdTree::parent(&*self, def_id).unwrap(); |
501 |
504 |
self.get_extern_crate_root(module_def_id.krate) |