diff options
Diffstat (limited to 'tests/rustdoc/source-code-pages/check-source-code-urls-to-def.rs')
| -rw-r--r-- | tests/rustdoc/source-code-pages/check-source-code-urls-to-def.rs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/rustdoc/source-code-pages/check-source-code-urls-to-def.rs b/tests/rustdoc/source-code-pages/check-source-code-urls-to-def.rs new file mode 100644 index 00000000000..d701b88bf9f --- /dev/null +++ b/tests/rustdoc/source-code-pages/check-source-code-urls-to-def.rs @@ -0,0 +1,71 @@ +//@ compile-flags: -Zunstable-options --generate-link-to-definition +//@ aux-build:source_code.rs +//@ build-aux-docs + +#![feature(rustc_attrs)] + +#![crate_name = "foo"] + +extern crate source_code; + +//@ has 'src/foo/check-source-code-urls-to-def.rs.html' + +//@ has - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#1-17"]' 'bar' +#[path = "auxiliary/source-code-bar.rs"] +pub mod bar; + +//@ count - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#5-7"]' 4 +use bar::Bar; +//@ has - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#13-17"]' 'self' +//@ has - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#14-16"]' 'Trait' +use bar::sub::{self, Trait}; + +pub struct Foo; + +impl Foo { + fn hello(&self) {} +} + +fn babar() {} + +//@ has - '//pre[@class="rust"]//a/@href' '/struct.String.html' +//@ has - '//pre[@class="rust"]//a/@href' '/primitive.u32.html' +//@ has - '//pre[@class="rust"]//a/@href' '/primitive.str.html' +// The 5 links to line 23 and the line 23 itself. +//@ count - '//pre[@class="rust"]//a[@href="#23"]' 6 +//@ has - '//pre[@class="rust"]//a[@href="../../source_code/struct.SourceCode.html"]' \ +// 'source_code::SourceCode' +pub fn foo(a: u32, b: &str, c: String, d: Foo, e: bar::Bar, f: source_code::SourceCode) { + let x = 12; + let y: Foo = Foo; + let z: Bar = bar::Bar { field: Foo }; + babar(); + //@ has - '//pre[@class="rust"]//a[@href="#26"]' 'hello' + y.hello(); +} + +//@ has - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#14-16"]' 'bar::sub::Trait' +//@ has - '//pre[@class="rust"]//a[@href="auxiliary/source-code-bar.rs.html#14-16"]' 'Trait' +pub fn foo2<T: bar::sub::Trait, V: Trait>(t: &T, v: &V, b: bool) {} + +pub trait AnotherTrait {} +pub trait WhyNot {} + +//@ has - '//pre[@class="rust"]//a[@href="#51"]' 'AnotherTrait' +//@ has - '//pre[@class="rust"]//a[@href="#52"]' 'WhyNot' +pub fn foo3<T, V>(t: &T, v: &V) +where + T: AnotherTrait, + V: WhyNot +{} + +pub trait AnotherTrait2 {} + +//@ has - '//pre[@class="rust"]//a[@href="#62"]' 'AnotherTrait2' +pub fn foo4() { + let x: Vec<&dyn AnotherTrait2> = Vec::new(); +} + +//@ has - '//pre[@class="rust"]//a[@href="../../foo/primitive.bool.html"]' 'bool' +#[rustc_doc_primitive = "bool"] +mod whatever {} |
