about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/crashes/132765.rs12
-rw-r--r--tests/crashes/132766.rs9
-rw-r--r--tests/crashes/132882.rs13
-rw-r--r--tests/crashes/132981.rs7
-rw-r--r--tests/crashes/133063.rs8
-rw-r--r--tests/crashes/133066.rs12
-rw-r--r--tests/crashes/133199.rs11
-rw-r--r--tests/crashes/133275-1.rs13
-rw-r--r--tests/crashes/133275-2.rs15
-rw-r--r--tests/crashes/auxiliary/aux133199.rs13
10 files changed, 113 insertions, 0 deletions
diff --git a/tests/crashes/132765.rs b/tests/crashes/132765.rs
new file mode 100644
index 00000000000..01e8fdaacff
--- /dev/null
+++ b/tests/crashes/132765.rs
@@ -0,0 +1,12 @@
+//@ known-bug: #132765
+
+trait LendingIterator {
+    type Item<'q>;
+    fn for_each(&self, _f: Box<fn(Self::Item<'_>)>) {}
+}
+
+fn f(_: ()) {}
+
+fn main() {
+    LendingIterator::for_each(&(), f);
+}
diff --git a/tests/crashes/132766.rs b/tests/crashes/132766.rs
new file mode 100644
index 00000000000..5f5117d77a5
--- /dev/null
+++ b/tests/crashes/132766.rs
@@ -0,0 +1,9 @@
+//@ known-bug: #132766
+
+trait Trait {}
+impl<'a> Trait for () {
+    fn pass2<'a>() -> impl Trait2 {}
+}
+
+trait Trait2 {}
+impl Trait2 for () {}
diff --git a/tests/crashes/132882.rs b/tests/crashes/132882.rs
new file mode 100644
index 00000000000..6b5e4dba803
--- /dev/null
+++ b/tests/crashes/132882.rs
@@ -0,0 +1,13 @@
+//@ known-bug: #132882
+
+use std::ops::Add;
+
+pub trait Numoid
+where
+    for<N: Numoid> &'a Self: Add<Self>,
+{
+}
+
+pub fn compute<N: Numoid>(a: N) -> N {
+    &a + a
+}
diff --git a/tests/crashes/132981.rs b/tests/crashes/132981.rs
new file mode 100644
index 00000000000..8ff4fa36fd0
--- /dev/null
+++ b/tests/crashes/132981.rs
@@ -0,0 +1,7 @@
+//@ known-bug: #132981
+//@compile-flags: -Clink-dead-code=true --crate-type lib
+//@ only-x86_64
+//@ ignore-windows
+
+#![feature(rust_cold_cc)]
+pub extern "rust-cold" fn foo(_: [usize; 3]) {}
diff --git a/tests/crashes/133063.rs b/tests/crashes/133063.rs
new file mode 100644
index 00000000000..132b5486170
--- /dev/null
+++ b/tests/crashes/133063.rs
@@ -0,0 +1,8 @@
+//@ known-bug: #133063
+
+fn foo(x: !) {
+    match x {
+        (! | !) if false => {}
+        _ => {}
+    }
+}
diff --git a/tests/crashes/133066.rs b/tests/crashes/133066.rs
new file mode 100644
index 00000000000..732ebb7079f
--- /dev/null
+++ b/tests/crashes/133066.rs
@@ -0,0 +1,12 @@
+//@ known-bug: #133066
+trait Owner {
+    const C<const N: u32>: u32;
+}
+
+impl Owner for () {;}
+
+fn take0<const N: u64>(_: impl Owner<C<N> = { N }>) {}
+
+fn main() {
+    take0::<f32, >(());
+}
diff --git a/tests/crashes/133199.rs b/tests/crashes/133199.rs
new file mode 100644
index 00000000000..76535fa83a6
--- /dev/null
+++ b/tests/crashes/133199.rs
@@ -0,0 +1,11 @@
+//@ known-bug: #133199
+//@ aux-build: aux133199.rs
+
+extern crate aux133199;
+
+use aux133199::FixedBitSet;
+
+fn main() {
+    FixedBitSet::<7>::new();
+    //~^ ERROR
+}
diff --git a/tests/crashes/133275-1.rs b/tests/crashes/133275-1.rs
new file mode 100644
index 00000000000..73c04f5d6e4
--- /dev/null
+++ b/tests/crashes/133275-1.rs
@@ -0,0 +1,13 @@
+//@ known-bug: #133275
+#![feature(const_trait_impl)]
+#![feature(associated_type_defaults)]
+
+#[const_trait]
+trait Foo3<T>
+where
+    Self::Baz: Clone,
+{
+    type Baz = T;
+}
+
+pub fn main() {}
diff --git a/tests/crashes/133275-2.rs b/tests/crashes/133275-2.rs
new file mode 100644
index 00000000000..a774b3cdb69
--- /dev/null
+++ b/tests/crashes/133275-2.rs
@@ -0,0 +1,15 @@
+//@ known-bug: #133275
+#![feature(const_trait_impl)]
+#[const_trait]
+pub trait Owo<X = <IntEnum as Uwu>::T> {}
+
+#[const_trait]
+trait Foo3<T>
+where
+    Self::Bar: Clone,
+    Self::Baz: Clone,
+{
+    type Bar = Vec<Self::Baz>;
+    type Baz = T;
+    //~^ ERROR the trait bound `T: Clone` is not satisfied
+}
diff --git a/tests/crashes/auxiliary/aux133199.rs b/tests/crashes/auxiliary/aux133199.rs
new file mode 100644
index 00000000000..40765d92fbf
--- /dev/null
+++ b/tests/crashes/auxiliary/aux133199.rs
@@ -0,0 +1,13 @@
+#![allow(incomplete_features)]
+#![feature(generic_const_exprs)]
+
+pub struct FixedBitSet<const N: usize>;
+
+impl<const N: usize> FixedBitSet<N>
+where
+    [u8; N.div_ceil(8)]: Sized,
+{
+    pub fn new() -> Self {
+        todo!()
+    }
+}