about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/crashes/123255.rs13
-rw-r--r--tests/crashes/123276.rs25
-rw-r--r--tests/crashes/123887.rs15
-rw-r--r--tests/crashes/125013-1.rs5
-rw-r--r--tests/crashes/125013-2.rs16
-rw-r--r--tests/crashes/125014.rs17
-rw-r--r--tests/crashes/125059.rs12
-rw-r--r--tests/crashes/125323.rs6
-rw-r--r--tests/crashes/125370.rs16
-rw-r--r--tests/crashes/125432.rs17
-rw-r--r--tests/crashes/125476.rs3
-rw-r--r--tests/crashes/125512.rs10
-rw-r--r--tests/crashes/125520.rs16
13 files changed, 171 insertions, 0 deletions
diff --git a/tests/crashes/123255.rs b/tests/crashes/123255.rs
new file mode 100644
index 00000000000..a94a2a0422e
--- /dev/null
+++ b/tests/crashes/123255.rs
@@ -0,0 +1,13 @@
+//@ known-bug: rust-lang/rust#123255
+//@ edition:2021
+#![crate_type = "lib"]
+
+pub fn a() {}
+
+mod handlers {
+    pub struct C(&());
+    pub fn c() -> impl Fn() -> C {
+        let a1 = ();
+        || C((crate::a(), a1).into())
+    }
+}
diff --git a/tests/crashes/123276.rs b/tests/crashes/123276.rs
new file mode 100644
index 00000000000..d2246f59583
--- /dev/null
+++ b/tests/crashes/123276.rs
@@ -0,0 +1,25 @@
+//@ known-bug: rust-lang/rust#123276
+//@ edition:2021
+
+async fn create_task() {
+    _ = Some(async { bind(documentation_filter()) });
+}
+
+async fn bind<Fut, F: Filter<Future = Fut>>(_: F) {}
+
+fn documentation_filter() -> impl Filter {
+    AndThen
+}
+
+trait Filter {
+    type Future;
+}
+
+struct AndThen;
+
+impl Filter for AndThen
+where
+    Foo: Filter,
+{
+    type Future = ();
+}
diff --git a/tests/crashes/123887.rs b/tests/crashes/123887.rs
new file mode 100644
index 00000000000..68e2fb0325c
--- /dev/null
+++ b/tests/crashes/123887.rs
@@ -0,0 +1,15 @@
+//@ known-bug: rust-lang/rust#123887
+//@ compile-flags: -Clink-dead-code
+
+#![feature(extern_types)]
+#![feature(unsized_fn_params)]
+
+extern "C" {
+    pub type ExternType;
+}
+
+impl ExternType {
+    pub fn f(self) {}
+}
+
+pub fn main() {}
diff --git a/tests/crashes/125013-1.rs b/tests/crashes/125013-1.rs
new file mode 100644
index 00000000000..ae66d7a1466
--- /dev/null
+++ b/tests/crashes/125013-1.rs
@@ -0,0 +1,5 @@
+//@ known-bug: rust-lang/rust#125013
+//@ edition:2021
+use io::{self as std};
+use std::ops::Deref::{self as io};
+pub fn main() {}
diff --git a/tests/crashes/125013-2.rs b/tests/crashes/125013-2.rs
new file mode 100644
index 00000000000..a14c8a76b63
--- /dev/null
+++ b/tests/crashes/125013-2.rs
@@ -0,0 +1,16 @@
+//@ known-bug: rust-lang/rust#125013
+//@ edition:2021
+mod a {
+  pub mod b {
+    pub mod c {
+      pub trait D {}
+    }
+  }
+}
+
+use a::*;
+
+use e as b;
+use b::c::D as e;
+
+fn main() { }
diff --git a/tests/crashes/125014.rs b/tests/crashes/125014.rs
new file mode 100644
index 00000000000..b29042ee598
--- /dev/null
+++ b/tests/crashes/125014.rs
@@ -0,0 +1,17 @@
+//@ known-bug: rust-lang/rust#125014
+//@ compile-flags: -Znext-solver=coherence
+#![feature(specialization)]
+
+trait Foo {}
+
+impl Foo for <u16 as Assoc>::Output {}
+
+impl Foo for u32 {}
+
+trait Assoc {
+    type Output;
+}
+impl Output for u32 {}
+impl Assoc for <u16 as Assoc>::Output {
+    default type Output = bool;
+}
diff --git a/tests/crashes/125059.rs b/tests/crashes/125059.rs
new file mode 100644
index 00000000000..7e9f7414816
--- /dev/null
+++ b/tests/crashes/125059.rs
@@ -0,0 +1,12 @@
+//@ known-bug: rust-lang/rust#125059
+#![feature(deref_patterns)]
+#![allow(incomplete_features)]
+
+fn simple_vec(vec: Vec<u32>) -> u32 {
+   (|| match Vec::<u32>::new() {
+        deref!([]) => 100,
+        _ => 2000,
+    })()
+}
+
+fn main() {}
diff --git a/tests/crashes/125323.rs b/tests/crashes/125323.rs
new file mode 100644
index 00000000000..180b7bbad09
--- /dev/null
+++ b/tests/crashes/125323.rs
@@ -0,0 +1,6 @@
+//@ known-bug: rust-lang/rust#125323
+fn main() {
+    for _ in 0..0 {
+        [(); loop {}];
+    }
+}
diff --git a/tests/crashes/125370.rs b/tests/crashes/125370.rs
new file mode 100644
index 00000000000..8640d88a5d7
--- /dev/null
+++ b/tests/crashes/125370.rs
@@ -0,0 +1,16 @@
+//@ known-bug: rust-lang/rust#125370
+
+type Field3 = i64;
+
+#[repr(C)]
+union DummyUnion {
+    field3: Field3,
+}
+
+const UNION: DummyUnion = loop {};
+
+const fn read_field2() -> Field2 {
+    const FIELD2: Field2 = loop {
+        UNION.field3
+    };
+}
diff --git a/tests/crashes/125432.rs b/tests/crashes/125432.rs
new file mode 100644
index 00000000000..659bb3ce21d
--- /dev/null
+++ b/tests/crashes/125432.rs
@@ -0,0 +1,17 @@
+//@ known-bug: rust-lang/rust#125432
+
+fn separate_arms() {
+    // Here both arms perform assignments, but only one is illegal.
+
+    let mut x = None;
+    match x {
+        None => {
+            // It is ok to reassign x here, because there is in
+            // fact no outstanding loan of x!
+            x = Some(0);
+        }
+        Some(right) => consume(right),
+    }
+}
+
+fn main() {}
diff --git a/tests/crashes/125476.rs b/tests/crashes/125476.rs
new file mode 100644
index 00000000000..c6cb4db7d23
--- /dev/null
+++ b/tests/crashes/125476.rs
@@ -0,0 +1,3 @@
+//@ known-bug: rust-lang/rust#125476
+pub struct Data([u8; usize::MAX >> 16]);
+const _: &'static [Data] = &[];
diff --git a/tests/crashes/125512.rs b/tests/crashes/125512.rs
new file mode 100644
index 00000000000..1672b24a114
--- /dev/null
+++ b/tests/crashes/125512.rs
@@ -0,0 +1,10 @@
+//@ known-bug: rust-lang/rust#125512
+//@ edition:2021
+#![feature(object_safe_for_dispatch)]
+trait B {
+    fn f(a: A) -> A;
+}
+trait A {
+    fn concrete(b: B) -> B;
+}
+fn main() {}
diff --git a/tests/crashes/125520.rs b/tests/crashes/125520.rs
new file mode 100644
index 00000000000..c6756053c21
--- /dev/null
+++ b/tests/crashes/125520.rs
@@ -0,0 +1,16 @@
+//@ known-bug: #125520
+#![feature(generic_const_exprs)]
+
+struct Outer<const A: i64, const B: i64>();
+impl<const A: usize, const B: usize> Outer<A, B>
+where
+    [(); A + (B * 2)]:,
+{
+    fn i() -> Self {
+        Self
+    }
+}
+
+fn main() {
+    Outer::<1, 1>::o();
+}