about summary refs log tree commit diff
path: root/tests/ui/pattern
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-05-03 15:49:10 +0200
committerRalf Jung <post@ralfj.de>2024-05-03 15:56:59 +0200
commitcbd682beeb0a7b54f4cc9e5dee3be3e6d728b9c4 (patch)
tree3d88ab38d03a563037602c23f92f541bd9f8d378 /tests/ui/pattern
parent179a6a08b127c7670ec648c245d8c31c6ac2419c (diff)
downloadrust-cbd682beeb0a7b54f4cc9e5dee3be3e6d728b9c4.tar.gz
rust-cbd682beeb0a7b54f4cc9e5dee3be3e6d728b9c4.zip
turn pointer_structural_match into a hard error
Diffstat (limited to 'tests/ui/pattern')
-rw-r--r--tests/ui/pattern/usefulness/consts-opaque.rs25
-rw-r--r--tests/ui/pattern/usefulness/consts-opaque.stderr163
2 files changed, 24 insertions, 164 deletions
diff --git a/tests/ui/pattern/usefulness/consts-opaque.rs b/tests/ui/pattern/usefulness/consts-opaque.rs
index 3e461785182..a5743c63308 100644
--- a/tests/ui/pattern/usefulness/consts-opaque.rs
+++ b/tests/ui/pattern/usefulness/consts-opaque.rs
@@ -93,10 +93,8 @@ fn main() {
     const QUUX: Quux = quux;
 
     match QUUX {
-        QUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
-        QUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        QUUX => {} //~ERROR behave unpredictably
+        QUUX => {} //~ERROR behave unpredictably
         _ => {}
     }
 
@@ -105,17 +103,14 @@ fn main() {
     const WRAPQUUX: Wrap<Quux> = Wrap(quux);
 
     match WRAPQUUX {
-        WRAPQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
-        WRAPQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        WRAPQUUX => {} //~ERROR behave unpredictably
+        WRAPQUUX => {} //~ERROR behave unpredictably
         Wrap(_) => {}
     }
 
     match WRAPQUUX {
         Wrap(_) => {}
-        WRAPQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        WRAPQUUX => {} //~ERROR behave unpredictably
     }
 
     match WRAPQUUX {
@@ -123,9 +118,7 @@ fn main() {
     }
 
     match WRAPQUUX {
-        //~^ ERROR: non-exhaustive patterns: `Wrap(_)` not covered
-        WRAPQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        WRAPQUUX => {} //~ERROR behave unpredictably
     }
 
     #[derive(PartialEq, Eq)]
@@ -136,11 +129,9 @@ fn main() {
     const WHOKNOWSQUUX: WhoKnows<Quux> = WhoKnows::Yay(quux);
 
     match WHOKNOWSQUUX {
-        WHOKNOWSQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        WHOKNOWSQUUX => {} //~ERROR behave unpredictably
         WhoKnows::Yay(_) => {}
-        WHOKNOWSQUUX => {} //~WARN behave unpredictably
-        //~| previously accepted
+        WHOKNOWSQUUX => {} //~ERROR behave unpredictably
         WhoKnows::Nope => {}
     }
 }
diff --git a/tests/ui/pattern/usefulness/consts-opaque.stderr b/tests/ui/pattern/usefulness/consts-opaque.stderr
index 6a5bd185e39..d057309e420 100644
--- a/tests/ui/pattern/usefulness/consts-opaque.stderr
+++ b/tests/ui/pattern/usefulness/consts-opaque.stderr
@@ -1,75 +1,50 @@
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
   --> $DIR/consts-opaque.rs:96:9
    |
 LL |         QUUX => {}
    |         ^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:98:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:97:9
    |
 LL |         QUUX => {}
    |         ^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:108:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:106:9
    |
 LL |         WRAPQUUX => {}
    |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:110:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:107:9
    |
 LL |         WRAPQUUX => {}
    |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:117:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:113:9
    |
 LL |         WRAPQUUX => {}
    |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:127:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:121:9
    |
 LL |         WRAPQUUX => {}
    |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:139:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:132:9
    |
 LL |         WHOKNOWSQUUX => {}
    |         ^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:142:9
+error: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
+  --> $DIR/consts-opaque.rs:134:9
    |
 LL |         WHOKNOWSQUUX => {}
    |         ^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
 
 error: unreachable pattern
   --> $DIR/consts-opaque.rs:48:9
@@ -146,111 +121,5 @@ error: unreachable pattern
 LL |         _ => {} // should not be emitting unreachable warning
    |         ^
 
-error[E0004]: non-exhaustive patterns: `Wrap(_)` not covered
-  --> $DIR/consts-opaque.rs:125:11
-   |
-LL |     match WRAPQUUX {
-   |           ^^^^^^^^ pattern `Wrap(_)` not covered
-   |
-note: `Wrap<fn(usize, usize) -> usize>` defined here
-  --> $DIR/consts-opaque.rs:104:12
-   |
-LL |     struct Wrap<T>(T);
-   |            ^^^^
-   = note: the matched value is of type `Wrap<fn(usize, usize) -> usize>`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL |         WRAPQUUX => {}, Wrap(_) => todo!()
-   |                       ++++++++++++++++++++
-
-error: aborting due to 10 previous errors; 8 warnings emitted
-
-For more information about this error, try `rustc --explain E0004`.
-Future incompatibility report: Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:96:9
-   |
-LL |         QUUX => {}
-   |         ^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:98:9
-   |
-LL |         QUUX => {}
-   |         ^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:108:9
-   |
-LL |         WRAPQUUX => {}
-   |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:110:9
-   |
-LL |         WRAPQUUX => {}
-   |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:117:9
-   |
-LL |         WRAPQUUX => {}
-   |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:127:9
-   |
-LL |         WRAPQUUX => {}
-   |         ^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:139:9
-   |
-LL |         WHOKNOWSQUUX => {}
-   |         ^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
-
-Future breakage diagnostic:
-warning: function pointers and raw pointers not derived from integers in patterns behave unpredictably and should not be relied upon. See https://github.com/rust-lang/rust/issues/70861 for details.
-  --> $DIR/consts-opaque.rs:142:9
-   |
-LL |         WHOKNOWSQUUX => {}
-   |         ^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
-   = note: `#[warn(pointer_structural_match)]` on by default
+error: aborting due to 17 previous errors