about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-12-21 05:31:07 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-12-22 06:14:36 +0000
commit8a1acb2c690eeb11b5c3f2a26bf2d68741ed5844 (patch)
tree0666643f308f17439cd6fd920b38729d54a24963
parentf10f50b42639718b2580d10802f05f2b6ff209d5 (diff)
downloadrust-8a1acb2c690eeb11b5c3f2a26bf2d68741ed5844.tar.gz
rust-8a1acb2c690eeb11b5c3f2a26bf2d68741ed5844.zip
Pretty-print `$crate::foo::bar` as `::foo::bar`.
-rw-r--r--src/librustc/hir/print.rs4
-rw-r--r--src/libsyntax/print/pprust.rs3
-rw-r--r--src/test/pretty/issue-4264.pp2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs
index de4047df81c..100e344d941 100644
--- a/src/librustc/hir/print.rs
+++ b/src/librustc/hir/print.rs
@@ -1647,7 +1647,7 @@ impl<'a> State<'a> {
             if i > 0 {
                 word(&mut self.s, "::")?
             }
-            if segment.name != keywords::CrateRoot.name() {
+            if segment.name != keywords::CrateRoot.name() && segment.name != "$crate" {
                 self.print_name(segment.name)?;
                 self.print_path_parameters(&segment.parameters, colons_before_params)?;
             }
@@ -1674,7 +1674,7 @@ impl<'a> State<'a> {
                     if i > 0 {
                         word(&mut self.s, "::")?
                     }
-                    if segment.name != keywords::CrateRoot.name() {
+                    if segment.name != keywords::CrateRoot.name() && segment.name != "$crate" {
                         self.print_name(segment.name)?;
                         self.print_path_parameters(&segment.parameters, colons_before_params)?;
                     }
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index e9c1cbcba61..7558f0256da 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -2351,7 +2351,8 @@ impl<'a> State<'a> {
             if i > 0 {
                 try!(word(&mut self.s, "::"))
             }
-            if segment.identifier.name != keywords::CrateRoot.name() {
+            if segment.identifier.name != keywords::CrateRoot.name() &&
+               segment.identifier.name != "$crate" {
                 try!(self.print_ident(segment.identifier));
                 if let Some(ref parameters) = segment.parameters {
                     try!(self.print_path_parameters(parameters, colons_before_params));
diff --git a/src/test/pretty/issue-4264.pp b/src/test/pretty/issue-4264.pp
index fdb7f9c68b9..6c74e7758c4 100644
--- a/src/test/pretty/issue-4264.pp
+++ b/src/test/pretty/issue-4264.pp
@@ -39,7 +39,7 @@ pub fn bar() ({
 
 
 
-                  (($crate::fmt::format as
+                  ((::fmt::format as
                        fn(std::fmt::Arguments<'_>) -> std::string::String {std::fmt::format})(((<::std::fmt::Arguments>::new_v1
                                                                                                    as
                                                                                                    fn(&[&str], &[std::fmt::ArgumentV1<'_>]) -> std::fmt::Arguments<'_> {std::fmt::Arguments<'_>::new_v1})(({