Print full Type::ResolvedPaths starting with Self

(e.g., `Self::Output`)

This doesn't actually "resugar" qualified paths like `<Self as
Foo>::Output`, it just doesn't elide the prefix segments when rendering
cleaned paths like `Self::Output`.

cc #21145
This commit is contained in:
Tom Jakubowski
2015-02-06 02:02:59 -08:00
parent abae840f45
commit df1cfde253
3 changed files with 27 additions and 1 deletions

View File

@@ -460,7 +460,8 @@ impl fmt::Display for clean::Type {
f.write_str(name)
}
clean::ResolvedPath{ did, ref typarams, ref path } => {
try!(resolved_path(f, did, path, false));
// Paths like Self::Output should be rendered with all segments
try!(resolved_path(f, did, path, path.segments[0].name == "Self"));
tybounds(f, typarams)
}
clean::Infer => write!(f, "_"),