about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRémy Rakic <remy.rakic+github@gmail.com>2025-01-21 15:54:00 +0000
committerRémy Rakic <remy.rakic+github@gmail.com>2025-01-21 16:18:27 +0000
commitd9165b2ed6e944ab40d0ea6051c3cfe51568b52e (patch)
tree0a0a2382cbae006a7130267aaa9b33710a1f4e04
parentcd805f09ffbfa3896c8f50a619de9b67e1d9f3c3 (diff)
downloadrust-d9165b2ed6e944ab40d0ea6051c3cfe51568b52e.tar.gz
rust-d9165b2ed6e944ab40d0ea6051c3cfe51568b52e.zip
add test for issue 135289
-rw-r--r--tests/ui/resolve/auxiliary/fake_matches.rs13
-rw-r--r--tests/ui/resolve/const-with-typo-in-pattern-binding-ice-135289.rs17
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/resolve/auxiliary/fake_matches.rs b/tests/ui/resolve/auxiliary/fake_matches.rs
new file mode 100644
index 00000000000..6d42972cbac
--- /dev/null
+++ b/tests/ui/resolve/auxiliary/fake_matches.rs
@@ -0,0 +1,13 @@
+// Helper for test tests/ui/resolve/const-with-typo-in-pattern-binding-ice-135289.rs
+
+//@ edition: 2018
+
+#[macro_export]
+macro_rules! assert_matches {
+    ( $e:expr , $($pat:pat)|+ ) => {
+        match $e {
+            $($pat)|+ => (),
+            _ => (),
+        }
+    };
+}
diff --git a/tests/ui/resolve/const-with-typo-in-pattern-binding-ice-135289.rs b/tests/ui/resolve/const-with-typo-in-pattern-binding-ice-135289.rs
new file mode 100644
index 00000000000..8267a9250ec
--- /dev/null
+++ b/tests/ui/resolve/const-with-typo-in-pattern-binding-ice-135289.rs
@@ -0,0 +1,17 @@
+// This is a non-regression test for issue 135289, where the "const with typo in pattern" diagnostic
+// caused an ICE when unexpectedly pretty printing a type for unreachable arms via a macro defined
+// in a dependency.
+
+#![warn(unreachable_patterns)] // needed to reproduce the ICE described in #135289
+
+//@ check-pass
+//@ aux-build: fake_matches.rs
+extern crate fake_matches;
+
+const _A: u64 = 0;
+pub fn f() -> u64 {
+    0
+}
+fn main() {
+    fake_matches::assert_matches!(f(), _non_existent);
+}