about summary refs log tree commit diff
path: root/tests/coverage/attr/impl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/coverage/attr/impl.rs')
-rw-r--r--tests/coverage/attr/impl.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/coverage/attr/impl.rs b/tests/coverage/attr/impl.rs
new file mode 100644
index 00000000000..d4d784a3502
--- /dev/null
+++ b/tests/coverage/attr/impl.rs
@@ -0,0 +1,41 @@
+#![feature(coverage_attribute)]
+//@ edition: 2021
+
+// Checks that `#[coverage(..)]` can be applied to impl and impl-trait blocks,
+// and is inherited by any enclosed functions.
+
+struct MyStruct;
+
+#[coverage(off)]
+impl MyStruct {
+    fn off_inherit() {}
+
+    #[coverage(on)]
+    fn off_on() {}
+
+    #[coverage(off)]
+    fn off_off() {}
+}
+
+#[coverage(on)]
+impl MyStruct {
+    fn on_inherit() {}
+
+    #[coverage(on)]
+    fn on_on() {}
+
+    #[coverage(off)]
+    fn on_off() {}
+}
+
+trait MyTrait {
+    fn method();
+}
+
+#[coverage(off)]
+impl MyTrait for MyStruct {
+    fn method() {}
+}
+
+#[coverage(off)]
+fn main() {}