summaryrefslogtreecommitdiffstats
path: root/src/test/rustdoc/primitive-reference.rs
blob: 5c1193406092244a7c76b5ff49d841b48f2bb844 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#![crate_name = "foo"]

#![feature(rustdoc_internals)]

// @has foo/index.html
// @has - '//h2[@id="primitives"]' 'Primitive Types'
// @has - '//a[@href="primitive.reference.html"]' 'reference'
// @has - '//div[@class="sidebar-elems"]//li/a' 'Primitive Types'
// @has - '//div[@class="sidebar-elems"]//li/a/@href' '#primitives'
// @has foo/primitive.reference.html
// @has - '//a[@class="primitive"]' 'reference'
// @has - '//span[@class="in-band"]' 'Primitive Type reference'
// @has - '//section[@id="main-content"]//div[@class="docblock"]//p' 'this is a test!'

// There should be only one implementation listed.
// @count - '//*[@class="impl has-srclink"]' 1
// @has - '//*[@id="impl-Foo%3C%26A%3E-for-%26B"]/*[@class="code-header in-band"]' \
//        'impl<A, B> Foo<&A> for &B'
#[doc(primitive = "reference")]
/// this is a test!
mod reference {}

pub struct Bar;

// This implementation should **not** show up.
impl<T> From<&T> for Bar {
    fn from(s: &T) -> Self {
        Bar
    }
}

pub trait Foo<T> {
    fn stuff(&self, other: &T) {}
}

// This implementation should show up.
impl<A, B> Foo<&A> for &B {}