diff options
| author | Oliver Middleton <olliemail27@gmail.com> | 2016-05-12 18:23:11 +0100 |
|---|---|---|
| committer | Oliver Middleton <olliemail27@gmail.com> | 2016-05-12 20:08:33 +0100 |
| commit | 538de73f5b90eb831b7cc64e78f3aaac57d1378f (patch) | |
| tree | 15ce111bd777baa0c61bf23285218003e1c2c44b | |
| parent | e88defe71806ad190588e168e513bc1098f7c9fb (diff) | |
| download | rust-538de73f5b90eb831b7cc64e78f3aaac57d1378f.tar.gz rust-538de73f5b90eb831b7cc64e78f3aaac57d1378f.zip | |
rustdoc: Fix missing type parameters on impls
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 7 | ||||
| -rw-r--r-- | src/librustdoc/html/format.rs | 8 | ||||
| -rw-r--r-- | src/test/rustdoc/issue-33592.rs | 23 |
3 files changed, 30 insertions, 8 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index a89609fad6b..7305b0f1fb8 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1534,13 +1534,6 @@ impl Type { } } - pub fn trait_name(&self) -> Option<String> { - match *self { - ResolvedPath { ref path, .. } => Some(path.last_name()), - _ => None, - } - } - pub fn is_generic(&self) -> bool { match *self { ResolvedPath { is_generic, .. } => is_generic, diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 7af5322e7bd..4514106cece 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -587,7 +587,13 @@ fn fmt_impl(i: &clean::Impl, f: &mut fmt::Formatter, link_trait: bool) -> fmt::R if link_trait { write!(f, "{}", *ty)?; } else { - write!(f, "{}", ty.trait_name().unwrap())?; + match *ty { + clean::ResolvedPath{ typarams: None, ref path, is_generic: false, .. } => { + let last = path.segments.last().unwrap(); + write!(f, "{}{}", last.name, last.params)?; + } + _ => unreachable!(), + } } write!(f, " for ")?; } diff --git a/src/test/rustdoc/issue-33592.rs b/src/test/rustdoc/issue-33592.rs new file mode 100644 index 00000000000..c0de4cc38e4 --- /dev/null +++ b/src/test/rustdoc/issue-33592.rs @@ -0,0 +1,23 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![crate_name = "foo"] + +pub trait Foo<T> {} + +pub struct Bar; + +pub struct Baz; + +// @has foo/trait.Foo.html '//code' 'impl Foo<i32> for Bar' +impl Foo<i32> for Bar {} + +// @has foo/trait.Foo.html '//code' 'impl<T> Foo<T> for Baz' +impl<T> Foo<T> for Baz {} |
