summaryrefslogtreecommitdiff
path: root/src/librustc_resolve
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-12-09 17:46:12 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-12-19 23:17:54 +0300
commit69c66286a9a3240309cc5474478ad0a2186e2bce (patch)
tree3727676a66520a20a27bd2769c9cd21ffa03fe04 /src/librustc_resolve
parent2bc67da378db40b23a426ea6384b2660c29a002c (diff)
downloadrust-69c66286a9a3240309cc5474478ad0a2186e2bce.tar.gz
Reintroduce special pretty-printing for `$crate` when it's necessary for proc macros
Diffstat (limited to 'src/librustc_resolve')
-rw-r--r--src/librustc_resolve/build_reduced_graph.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs
index f082d776969..6cfa9f95082 100644
--- a/src/librustc_resolve/build_reduced_graph.rs
+++ b/src/librustc_resolve/build_reduced_graph.rs
@@ -1035,4 +1035,15 @@ impl<'a, 'b> Visitor<'a> for BuildReducedGraphVisitor<'a, 'b> {
}
visit::walk_attribute(self, attr);
}
+
+ fn visit_ident(&mut self, ident: Ident) {
+ if ident.name == keywords::DollarCrate.name() {
+ let name = match self.resolver.resolve_crate_root(ident).kind {
+ ModuleKind::Def(_, name) if name != keywords::Invalid.name() => name,
+ _ => keywords::Crate.name(),
+ };
+ ident.span.ctxt().set_dollar_crate_name(name);
+ }
+ visit::walk_ident(self, ident);
+ }
}