diff --git a/tests/crashes/140693.rs b/tests/crashes/140693.rs new file mode 100644 index 0000000000000..c8179ab9ef0f5 --- /dev/null +++ b/tests/crashes/140693.rs @@ -0,0 +1,10 @@ +//@ known-bug: #140693 +#![crate_type = "sdylib"] + +pub trait Trait { + type Type; +} +pub struct S; + +#[export_stable] +pub extern "C" fn foo1(_x: ::Type) {} diff --git a/tests/crashes/146210.rs b/tests/crashes/146210.rs new file mode 100644 index 0000000000000..674f4956ae6de --- /dev/null +++ b/tests/crashes/146210.rs @@ -0,0 +1,10 @@ +//@ known-bug: #146210 +//@ edition: 2024 +//@ compile-flags: -Zvalidate-mir --crate-type lib +use core::pin::Pin; + +fn bar(non_send: T) -> Pin + Send>> { + Box::pin(async { + non_send; + }) +} diff --git a/tests/crashes/146353.rs b/tests/crashes/146353.rs new file mode 100644 index 0000000000000..9d354408b19f6 --- /dev/null +++ b/tests/crashes/146353.rs @@ -0,0 +1,4 @@ +//@ known-bug: #146353 +const BIG_CHAIN: u8 = (); +trait NeverSend = !Send; +fn main() {} diff --git a/tests/crashes/149015.rs b/tests/crashes/149015.rs new file mode 100644 index 0000000000000..c262dc7d47fe3 --- /dev/null +++ b/tests/crashes/149015.rs @@ -0,0 +1,10 @@ +//@ known-bug: #149015 +trait Trait1 { + type Assoc; +} + +trait Trait2 {} + +impl Trait1 for ::Assoc { + type Assoc = (); +} diff --git a/tests/crashes/152204.rs b/tests/crashes/152204.rs new file mode 100644 index 0000000000000..8c9be213d9ea5 --- /dev/null +++ b/tests/crashes/152204.rs @@ -0,0 +1,9 @@ +//@ known-bug: #152204 +//@ compile-flags: -Copt-level=0 +#![feature(portable_simd)] + +fn main() { + if false { + let _ = core::simd::Simd::::splat(0); + } +} diff --git a/tests/crashes/153368.rs b/tests/crashes/153368.rs new file mode 100644 index 0000000000000..53e2aab4680fb --- /dev/null +++ b/tests/crashes/153368.rs @@ -0,0 +1,10 @@ +//@ known-bug: #153368 +//@ compile-flags: -Znext-solver=globally +trait Foo: Bar + Bar {} +trait Bar { + fn bar(self) -> T; +} + +fn test_infer_version(x: &dyn Foo) { + x.bar() +} diff --git a/tests/crashes/154367.rs b/tests/crashes/154367.rs new file mode 100644 index 0000000000000..54e55ffd96ae9 --- /dev/null +++ b/tests/crashes/154367.rs @@ -0,0 +1,6 @@ +//@ known-bug: #154367 +//@ compile-flags: -Copt-level=0 +#![feature(unsafe_binders)] + +fn main() { panic:: &'a ()>(); } +fn panic() { panic!() } diff --git a/tests/crashes/155482.rs b/tests/crashes/155482.rs new file mode 100644 index 0000000000000..a2182f83d737c --- /dev/null +++ b/tests/crashes/155482.rs @@ -0,0 +1,7 @@ +//@ known-bug: #155482 +trait TraitA < AsA = impl TraitB < { +#[derive(Hash)] + enum A; + struct A; +} +>> ; diff --git a/tests/crashes/155497.rs b/tests/crashes/155497.rs new file mode 100644 index 0000000000000..ed96c205d08b5 --- /dev/null +++ b/tests/crashes/155497.rs @@ -0,0 +1,13 @@ +//@ known-bug: #155497 +//@ compile-flags: -Wrust-2021-incompatible-closure-captures +struct Foo((u32, i128)); + +fn main() { + type T = impl async FnOnce() -> T; + let foo: T = Foo(); + let x = move || { + let x = move || { + let Foo((a, b)) = foo; + }; + }; +} diff --git a/tests/crashes/157197.rs b/tests/crashes/157197.rs new file mode 100644 index 0000000000000..6ff4055076535 --- /dev/null +++ b/tests/crashes/157197.rs @@ -0,0 +1,3 @@ +//@ known-bug: #157197 +static C: &'static usize = &(0 | E); +static E: usize = E; diff --git a/tests/crashes/158243.rs b/tests/crashes/158243.rs new file mode 100644 index 0000000000000..576ba0889e5f5 --- /dev/null +++ b/tests/crashes/158243.rs @@ -0,0 +1,12 @@ +//@ known-bug: #158243 +macro_rules! id { + ($x:expr) => { $x }; +} +fn main() { + |id!( + (|| { + use std::ops::Add; + 1.add(3); + }) + )| {}; +} diff --git a/tests/crashes/158773.rs b/tests/crashes/158773.rs new file mode 100644 index 0000000000000..3020ab6206e4b --- /dev/null +++ b/tests/crashes/158773.rs @@ -0,0 +1,16 @@ +//@ known-bug: #158773 +//@ needs-rustc-debug-assertions +//@ compile-flags: -Znext-solver=globally +trait HasLifetime { + type AtLifetime<'a>; +} + +pub struct ExistentialLifetime(S::AtLifetime<'static>); + +impl ExistentialLifetime { + fn new() -> ExistentialLifetime { + ExistentialLifetime(ExistentialLifetime(())) + } +} + +fn main() {} diff --git a/tests/crashes/158797.rs b/tests/crashes/158797.rs new file mode 100644 index 0000000000000..dc451094ba68b --- /dev/null +++ b/tests/crashes/158797.rs @@ -0,0 +1,14 @@ +//@ known-bug: #158797 +#![feature(coroutines)] +#![feature(const_async_blocks)] +#![feature(yield_expr)] +enum Foo { + Bar = ( + #[coroutine] + || yield, + 2, + ) + .1, +} + +fn main() {} diff --git a/tests/crashes/160329.rs b/tests/crashes/160329.rs new file mode 100644 index 0000000000000..e436795e5fca9 --- /dev/null +++ b/tests/crashes/160329.rs @@ -0,0 +1,4 @@ +//@ known-bug: #160329 +#![feature(autodiff)] +#[core::autodiff::autodiff_forward(fd_inner, Dual)] +fn f(_x: struct S) {} diff --git a/tests/crashes/160490.rs b/tests/crashes/160490.rs new file mode 100644 index 0000000000000..5f713ed268042 --- /dev/null +++ b/tests/crashes/160490.rs @@ -0,0 +1,2 @@ +//@ known-bug: #160490 +fn f(...: u8) {}