crashes: add more

This commit is contained in:
Matthias Krüger 2024-05-18 23:56:57 +02:00
parent c00957a3e2
commit 734e216b35
9 changed files with 126 additions and 0 deletions

10
tests/crashes/124833.rs Normal file
View file

@ -0,0 +1,10 @@
//@ known-bug: rust-lang/rust#124833
#![feature(generic_const_items)]
trait Trait {
const C<'a>: &'a str;
}
impl Trait for () {
const C<'a>: = "C";
}

11
tests/crashes/124857.rs Normal file
View file

@ -0,0 +1,11 @@
//@ known-bug: rust-lang/rust#124857
//@ compile-flags: -Znext-solver=coherence
#![feature(effects)]
#[const_trait]
trait Foo {}
impl const Foo for i32 {}
impl<T> const Foo for T where T: ~const Foo {}

22
tests/crashes/124891.rs Normal file
View file

@ -0,0 +1,22 @@
//@ known-bug: rust-lang/rust#124891
type Tait = impl FnOnce() -> ();
fn reify_as_tait() -> Thunk<Tait> {
Thunk::new(|cont| cont)
}
struct Thunk<F>(F);
impl<F> Thunk<F> {
fn new(f: F)
where
F: ContFn,
{
todo!();
}
}
trait ContFn {}
impl<F: FnOnce(Tait) -> ()> ContFn for F {}

11
tests/crashes/124894.rs Normal file
View file

@ -0,0 +1,11 @@
//@ known-bug: rust-lang/rust#124894
//@ compile-flags: -Znext-solver=coherence
#![feature(generic_const_exprs)]
pub trait IsTrue<const mem: bool> {}
impl<T> IsZST for T where (): IsTrue<{ std::mem::size_of::<T>() == 0 }> {}
pub trait IsZST {}
impl IsZST for IsZST {}

7
tests/crashes/125081.rs Normal file
View file

@ -0,0 +1,7 @@
//@ known-bug: rust-lang/rust#125081
use std::cell::Cell;
fn main() {
let _: Cell<&str, "a"> = Cell::new('β);
}

24
tests/crashes/125099.rs Normal file
View file

@ -0,0 +1,24 @@
//@ known-bug: rust-lang/rust#125099
pub trait ContFn<T>: Fn(T) -> Self::Future {
type Future;
}
impl<T, F> ContFn<T> for F
where
F: Fn(T),
{
type Future = ();
}
pub trait SeqHandler {
type Requires;
fn process<F: ContFn<Self::Requires>>() -> impl Sized;
}
pub struct ConvertToU64;
impl SeqHandler for ConvertToU64 {
type Requires = u64;
fn process<F: ContFn<Self::Requires>>() -> impl Sized {}
}
fn main() {}

17
tests/crashes/125155.rs Normal file
View file

@ -0,0 +1,17 @@
//@ known-bug: rust-lang/rust#125155
enum NestedEnum {
First,
Second,
Third
}
enum Enum {
Variant2(Option<*mut &'a &'b ()>)
}
fn foo(x: Enum) -> isize {
match x {
Enum::Variant2(NestedEnum::Third) => 4,
}
}

16
tests/crashes/125185.rs Normal file
View file

@ -0,0 +1,16 @@
//@ known-bug: rust-lang/rust#125185
//@ compile-flags: -Zvalidate-mir
type Foo = impl Send;
struct A;
const VALUE: Foo = value();
fn test(foo: Foo<'a>, f: impl for<'b> FnMut()) {
match VALUE {
0 | 0 => {}
_ => (),
}
}

8
tests/crashes/125249.rs Normal file
View file

@ -0,0 +1,8 @@
//@ known-bug: rust-lang/rust#125185
#![feature(return_position_impl_trait_in_trait, return_type_notation)]
trait IntFactory {
fn stream(&self) -> impl IntFactory<stream(): IntFactory<stream(): Send> + Send>;
}
pub fn main() {}