about summary refs log tree commit diff
path: root/src/test/rustdoc-ui/coverage/traits.rs
diff options
context:
space:
mode:
authorQuietMisdreavus <grey@quietmisdreavus.net>2019-02-21 16:02:56 -0600
committerQuietMisdreavus <grey@quietmisdreavus.net>2019-02-28 16:11:21 -0600
commit63bdd29ef4e744d6cacc2373b3b317eeebdf2a07 (patch)
tree30c74a89b6c0a815b0ebd9898276416671bfd59e /src/test/rustdoc-ui/coverage/traits.rs
parent3ce19b4a2c062a7a269bd2783a4a441d515b64c8 (diff)
downloadrust-63bdd29ef4e744d6cacc2373b3b317eeebdf2a07.tar.gz
rust-63bdd29ef4e744d6cacc2373b3b317eeebdf2a07.zip
add tests for doc coverage
Diffstat (limited to 'src/test/rustdoc-ui/coverage/traits.rs')
-rw-r--r--src/test/rustdoc-ui/coverage/traits.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/rustdoc-ui/coverage/traits.rs b/src/test/rustdoc-ui/coverage/traits.rs
new file mode 100644
index 00000000000..0a6defa17f8
--- /dev/null
+++ b/src/test/rustdoc-ui/coverage/traits.rs
@@ -0,0 +1,37 @@
+// compile-flags:-Z unstable-options --show-coverage
+// compile-pass
+
+#![feature(trait_alias)]
+
+/// look at this trait right here
+pub trait ThisTrait {
+    /// that's a trait all right
+    fn right_here(&self);
+
+    /// even the provided functions show up as trait methods
+    fn aww_yeah(&self) {}
+
+    /// gotta check those associated types, they're slippery
+    type SomeType;
+}
+
+/// so what happens if we take some struct...
+pub struct SomeStruct;
+
+/// ...and slap this trait on it?
+impl ThisTrait for SomeStruct {
+    /// what we get is a perfect combo!
+    fn right_here(&self) {}
+
+    type SomeType = String;
+}
+
+/// but what about those aliases? i hear they're pretty exotic
+pub trait MyAlias = ThisTrait + Send + Sync;
+
+// FIXME(58624): once rustdoc can process existential types, we need to make sure they're counted
+// /// woah, getting all existential in here
+// pub existential type ThisExists: ThisTrait;
+//
+// /// why don't we get a little more concrete
+// pub fn defines() -> ThisExists { SomeStruct {} }