Skip to content

Commit df1cfde

Browse files
committed
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
1 parent abae840 commit df1cfde

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

src/librustdoc/html/format.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,8 @@ impl fmt::Display for clean::Type {
460460
f.write_str(name)
461461
}
462462
clean::ResolvedPath{ did, ref typarams, ref path } => {
463-
try!(resolved_path(f, did, path, false));
463+
// Paths like Self::Output should be rendered with all segments
464+
try!(resolved_path(f, did, path, path.segments[0].name == "Self"));
464465
tybounds(f, typarams)
465466
}
466467
clean::Infer => write!(f, "_"),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-include ../tools.mk
2+
3+
all: lib.rs
4+
$(HOST_RPATH_ENV) $(RUSTDOC) -w html -o $(TMPDIR)/doc lib.rs
5+
$(HTMLDOCCK) $(TMPDIR)/doc lib.rs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type="lib"]
12+
13+
// @has lib/trait.Index.html
14+
pub trait Index<I: ?Sized> {
15+
// @has - '//*[@id="associatedtype.Output"]//code' 'type Output: ?Sized'
16+
type Output: ?Sized;
17+
// @has - '//*[@id="tymethod.index"]//code' \
18+
// "fn index<'a>(&'a self, index: I) -> &'a Self::Output"
19+
fn index<'a>(&'a self, index: I) -> &'a Self::Output;
20+
}

0 commit comments

Comments
 (0)