From 3da0457e3d05796e086345aaa40fac8aed7a7947 Mon Sep 17 00:00:00 2001 From: cyrgani Date: Sun, 16 Aug 2026 18:00:38 +0000 Subject: [PATCH] add crashtests --- tests/crashes/126725.rs | 22 ++++++++++++++++++++++ tests/crashes/141590.rs | 9 +++++++++ tests/crashes/142229.rs | 7 +++++++ tests/crashes/145217.rs | 6 ++++++ tests/crashes/148094.rs | 11 +++++++++++ tests/crashes/148095.rs | 11 +++++++++++ tests/crashes/152410.rs | 9 +++++++++ 7 files changed, 75 insertions(+) create mode 100644 tests/crashes/126725.rs create mode 100644 tests/crashes/141590.rs create mode 100644 tests/crashes/142229.rs create mode 100644 tests/crashes/145217.rs create mode 100644 tests/crashes/148094.rs create mode 100644 tests/crashes/148095.rs create mode 100644 tests/crashes/152410.rs diff --git a/tests/crashes/126725.rs b/tests/crashes/126725.rs new file mode 100644 index 0000000000000..33893f95537fd --- /dev/null +++ b/tests/crashes/126725.rs @@ -0,0 +1,22 @@ +//@ known-bug: #126725 +type Indirect = ::Output; + +trait Foo { + fn foo<'a>() -> Indirect<&'a impl Sized>; +} + +trait Bar { + type Output; +} + +impl<'a> Bar for &'a () { + type Output = &'a i32; +} + +impl Foo for () { + fn foo<'a>() -> <&'a Self as Bar>::Output { + &0 + } +} + +fn main() {} diff --git a/tests/crashes/141590.rs b/tests/crashes/141590.rs new file mode 100644 index 0000000000000..71276c50c7dda --- /dev/null +++ b/tests/crashes/141590.rs @@ -0,0 +1,9 @@ +//@ known-bug: #141590 +use std::sync::OnceLock; + +enum Void {} + +static LAZY_INIT: Void = OnceLock::new(); +static LAZY_INIT_REF: &[&Void] = &[&LAZY_INIT]; + +fn main() {} diff --git a/tests/crashes/142229.rs b/tests/crashes/142229.rs new file mode 100644 index 0000000000000..b34a7636b4185 --- /dev/null +++ b/tests/crashes/142229.rs @@ -0,0 +1,7 @@ +//@ known-bug: #142229 +#![feature(super_let)] + +const _: *const i32 = { + super let x = 1; + &raw const x +}; diff --git a/tests/crashes/145217.rs b/tests/crashes/145217.rs new file mode 100644 index 0000000000000..75e23b7728e37 --- /dev/null +++ b/tests/crashes/145217.rs @@ -0,0 +1,6 @@ +//@ known-bug: #145217 +//@ compile-flags: -Zlint-mir +#![feature(super_let)] +fn main() { + super let Some(1) = Some(2) else { return }; +} diff --git a/tests/crashes/148094.rs b/tests/crashes/148094.rs new file mode 100644 index 0000000000000..7c08240a198c5 --- /dev/null +++ b/tests/crashes/148094.rs @@ -0,0 +1,11 @@ +//@ known-bug: #148094 +//@ compile-flags: -Zvalidate-mir +#![feature(type_alias_impl_trait)] +type Tait = impl Sized; +trait Foo: Bar {} +trait Bar {} +#[define_opaque(Tait)] +fn test_correct3(x: &dyn Foo) -> &dyn Bar<()> { + x +} +fn main() {} diff --git a/tests/crashes/148095.rs b/tests/crashes/148095.rs new file mode 100644 index 0000000000000..43be99254164f --- /dev/null +++ b/tests/crashes/148095.rs @@ -0,0 +1,11 @@ +//@ known-bug: #148095 +use std::ops::Mul; + +struct Quantity(S); +impl Mul>::Output>> for f32 +where + Quantity: +{ + type Output = (); + fn mul(self, _: Quantity<>::Output>) {} +} diff --git a/tests/crashes/152410.rs b/tests/crashes/152410.rs new file mode 100644 index 0000000000000..94fc9c0dd19eb --- /dev/null +++ b/tests/crashes/152410.rs @@ -0,0 +1,9 @@ +//@ known-bug: #152410 +trait Trait { + fn foo(&self); +} +impl Trait for () {} + +const OBJECT: *const (dyn Trait + Send) = &(); + +const _: *const dyn Send = OBJECT as _;