diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-09-01 03:58:05 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-01 03:58:05 +0200 |
| commit | f040e689c0bd64769965db64ca204b99fad46ead (patch) | |
| tree | fb12ad86de5f633548400933234625081a1d1773 /tests | |
| parent | d24336b8c9f33b6c80cce45a00200feaae55cfdb (diff) | |
| parent | fff063ee77bad38ee908577e0f40c442e0ab97a3 (diff) | |
| download | rust-f040e689c0bd64769965db64ca204b99fad46ead.tar.gz rust-f040e689c0bd64769965db64ca204b99fad46ead.zip | |
Rollup merge of #129780 - cyrgani:master, r=compiler-errors
add crashtests for several old unfixed ICEs Adds several new crashtests for some older ICEs that did not yet have any. Tests were added for #128097, #119095, #117460 and #126443.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/crashes/117460.rs | 8 | ||||
| -rw-r--r-- | tests/crashes/119095.rs | 48 | ||||
| -rw-r--r-- | tests/crashes/126443.rs | 15 | ||||
| -rw-r--r-- | tests/crashes/128097.rs | 6 |
4 files changed, 77 insertions, 0 deletions
diff --git a/tests/crashes/117460.rs b/tests/crashes/117460.rs new file mode 100644 index 00000000000..4878a35ffe5 --- /dev/null +++ b/tests/crashes/117460.rs @@ -0,0 +1,8 @@ +//@ known-bug: #117460 +#![feature(generic_const_exprs)] + +struct Matrix<D = [(); 2 + 2]> { + d: D, +} + +impl Matrix {} diff --git a/tests/crashes/119095.rs b/tests/crashes/119095.rs new file mode 100644 index 00000000000..28742e0d5da --- /dev/null +++ b/tests/crashes/119095.rs @@ -0,0 +1,48 @@ +//@ known-bug: #119095 +//@ compile-flags: --edition=2021 + +fn any<T>() -> T { + loop {} +} + +trait Acquire { + type Connection; +} + +impl Acquire for &'static () { + type Connection = (); +} + +trait Unit {} +impl Unit for () {} + +fn get_connection<T>() -> impl Unit +where + T: Acquire, + T::Connection: Unit, +{ + any::<T::Connection>() +} + +fn main() { + let future = async { async { get_connection::<&'static ()>() }.await }; + + future.resolve_me(); +} + +trait ResolveMe { + fn resolve_me(self); +} + +impl<S> ResolveMe for S +where + (): CheckSend<S>, +{ + fn resolve_me(self) {} +} + +trait CheckSend<F> {} +impl<F> CheckSend<F> for () where F: Send {} + +trait NeverImplemented {} +impl<E, F> CheckSend<F> for E where E: NeverImplemented {} diff --git a/tests/crashes/126443.rs b/tests/crashes/126443.rs new file mode 100644 index 00000000000..fba779444f9 --- /dev/null +++ b/tests/crashes/126443.rs @@ -0,0 +1,15 @@ +//@ known-bug: #126443 +//@ compile-flags: -Copt-level=0 +#![feature(generic_const_exprs)] + +fn double_up<const M: usize>() -> [(); M * 2] { + todo!() +} + +fn quadruple_up<const N: usize>() -> [(); N * 2 * 2] { + double_up() +} + +fn main() { + quadruple_up::<0>(); +} diff --git a/tests/crashes/128097.rs b/tests/crashes/128097.rs new file mode 100644 index 00000000000..6ffca640cbd --- /dev/null +++ b/tests/crashes/128097.rs @@ -0,0 +1,6 @@ +//@ known-bug: #128097 +#![feature(explicit_tail_calls)] +fn f(x: &mut ()) { + let _y: String; + become f(x); +} |
