diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs index de4047df81c5d..100e344d94180 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 e9c1cbcba61db..7558f0256da18 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 fdb7f9c68b99d..6c74e7758c4ab 100644 --- a/src/test/pretty/issue-4264.pp +++ b/src/test/pretty/issue-4264.pp @@ -39,7 +39,7 @@ - (($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})(({