Skip to content

Commit

Permalink
crashes: add more
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiaskrgr committed May 18, 2024
1 parent c00957a commit 734e216
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 0 deletions.
10 changes: 10 additions & 0 deletions tests/crashes/124833.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 11 additions & 0 deletions tests/crashes/124857.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 22 additions & 0 deletions tests/crashes/124891.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 11 additions & 0 deletions tests/crashes/124894.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions tests/crashes/125081.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//@ known-bug: rust-lang/rust#125081

use std::cell::Cell;

fn main() {
let _: Cell<&str, "a"> = Cell::new('β);
}
24 changes: 24 additions & 0 deletions tests/crashes/125099.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 17 additions & 0 deletions tests/crashes/125155.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 16 additions & 0 deletions tests/crashes/125185.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 8 additions & 0 deletions tests/crashes/125249.rs
Original file line number Diff line number Diff line change
@@ -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() {}

0 comments on commit 734e216

Please sign in to comment.