about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2024-12-19 06:51:07 -0800
committerZalathar <Zalathar@users.noreply.github.com>2024-12-24 00:09:39 +1100
commit5d9f17f58c35503aeef74046d9d7d8521e265ba1 (patch)
tree4353528bbcdb1096c9250dbca99baad9a9217f39
parent0efa90f2464cad23abd371676b592d672d039057 (diff)
downloadrust-5d9f17f58c35503aeef74046d9d7d8521e265ba1.tar.gz
rust-5d9f17f58c35503aeef74046d9d7d8521e265ba1.zip
Add test for coverage on a body-less trait function
-rw-r--r--tests/ui/coverage-attr/no-coverage.rs9
-rw-r--r--tests/ui/coverage-attr/no-coverage.stderr36
2 files changed, 35 insertions, 10 deletions
diff --git a/tests/ui/coverage-attr/no-coverage.rs b/tests/ui/coverage-attr/no-coverage.rs
index d715ec8a302..c386f25816e 100644
--- a/tests/ui/coverage-attr/no-coverage.rs
+++ b/tests/ui/coverage-attr/no-coverage.rs
@@ -15,6 +15,12 @@ trait Trait {
     type T;
 
     type U;
+
+    #[coverage(off)] //~ ERROR attribute should be applied to a function definition or closure
+    fn f(&self);
+
+    #[coverage(off)] //~ ERROR attribute should be applied to a function definition or closure
+    fn g();
 }
 
 #[coverage(off)]
@@ -26,6 +32,9 @@ impl Trait for () {
 
     #[coverage(off)] //~ ERROR attribute should be applied to a function definition or closure
     type U = impl Trait; //~ ERROR unconstrained opaque type
+
+    fn f(&self) {}
+    fn g() {}
 }
 
 extern "C" {
diff --git a/tests/ui/coverage-attr/no-coverage.stderr b/tests/ui/coverage-attr/no-coverage.stderr
index 1412b54b8d7..f5a44ecec74 100644
--- a/tests/ui/coverage-attr/no-coverage.stderr
+++ b/tests/ui/coverage-attr/no-coverage.stderr
@@ -7,12 +7,12 @@ LL | / trait Trait {
 LL | |     #[coverage(off)]
 LL | |     const X: u32;
 ...  |
-LL | |     type U;
+LL | |     fn g();
 LL | | }
    | |_- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:41:5
+  --> $DIR/no-coverage.rs:50:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -20,7 +20,7 @@ LL |     let _ = ();
    |     ----------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:45:9
+  --> $DIR/no-coverage.rs:54:9
    |
 LL |         #[coverage(off)]
    |         ^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL |         () => (),
    |         -------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:49:5
+  --> $DIR/no-coverage.rs:58:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -52,7 +52,23 @@ LL |     type T;
    |     ------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:24:5
+  --> $DIR/no-coverage.rs:19:5
+   |
+LL |     #[coverage(off)]
+   |     ^^^^^^^^^^^^^^^^
+LL |     fn f(&self);
+   |     ------------ not a function or closure
+
+error[E0788]: attribute should be applied to a function definition or closure
+  --> $DIR/no-coverage.rs:22:5
+   |
+LL |     #[coverage(off)]
+   |     ^^^^^^^^^^^^^^^^
+LL |     fn g();
+   |     ------- not a function or closure
+
+error[E0788]: attribute should be applied to a function definition or closure
+  --> $DIR/no-coverage.rs:30:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -60,7 +76,7 @@ LL |     type T = Self;
    |     -------------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:27:5
+  --> $DIR/no-coverage.rs:33:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -68,7 +84,7 @@ LL |     type U = impl Trait;
    |     -------------------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:32:5
+  --> $DIR/no-coverage.rs:41:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -76,7 +92,7 @@ LL |     static X: u32;
    |     -------------- not a function or closure
 
 error[E0788]: attribute should be applied to a function definition or closure
-  --> $DIR/no-coverage.rs:35:5
+  --> $DIR/no-coverage.rs:44:5
    |
 LL |     #[coverage(off)]
    |     ^^^^^^^^^^^^^^^^
@@ -84,13 +100,13 @@ LL |     type T;
    |     ------- not a function or closure
 
 error: unconstrained opaque type
-  --> $DIR/no-coverage.rs:28:14
+  --> $DIR/no-coverage.rs:34:14
    |
 LL |     type U = impl Trait;
    |              ^^^^^^^^^^
    |
    = note: `U` must be used in combination with a concrete type within the same impl
 
-error: aborting due to 11 previous errors
+error: aborting due to 13 previous errors
 
 For more information about this error, try `rustc --explain E0788`.