Skip to content

Commit 8069e6a

Browse files
committed
crashes: more tests
1 parent 0c0f27a commit 8069e6a

File tree

21 files changed

+295
-0
lines changed

21 files changed

+295
-0
lines changed

tests/crashes/142866.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//@ known-bug: rust-lang/rust#142866
2+
//@ compile-flags: -Znext-solver=globally
3+
trait Trait<T> {}
4+
struct A<T>(T);
5+
struct B<T>(T);
6+
7+
trait IncompleteGuidance {}
8+
9+
impl<T> Trait<()> for A<T>
10+
where
11+
T: IncompleteGuidance,
12+
{
13+
}
14+
15+
impl<T, U> Trait<()> for B<T>
16+
where
17+
A<T>: Trait<U>,
18+
{
19+
}
20+
21+
fn impls_trait<T: Trait<()>>() {}
22+
23+
fn main() {
24+
impls_trait::<B<()>>();
25+
}

tests/crashes/142913.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//@ known-bug: rust-lang/rust#142913
2+
#![feature(generic_const_parameter_types)]
3+
struct Variant;
4+
5+
fn foo<'a, const N: &'a Variant = {}>() {}
6+
7+
fn main() {}

tests/crashes/143806.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@ known-bug: rust-lang/rust#143806
2+
//@compile-flags: -Zlint-mir
3+
#![feature(loop_match)]
4+
5+
fn main() {}
6+
7+
fn helper() -> u8 {
8+
let mut state = 0u8;
9+
#[loop_match]
10+
'a: loop {
11+
state = 'blk: {
12+
match state {
13+
_ => break 'blk state,
14+
}
15+
}
16+
}
17+
}

tests/crashes/143872.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//@ known-bug: rust-lang/rust#143872
2+
//@ needs-rustc-debug-assertions
3+
trait Project {
4+
type Ty;
5+
}
6+
impl Project for &'_ &'static () {
7+
type Ty = ();
8+
}
9+
trait Trait {
10+
fn get<'s>(s: &'s str, _: ()) -> &'_ str;
11+
}
12+
impl Trait for () {
13+
fn get<'s>(s: &'s str, _: <&&'s () as Project>::Ty) -> &'static str {
14+
s
15+
}
16+
}

tests/crashes/143896.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@ known-bug: rust-lang/rust#143896
2+
#![feature(associated_const_equality)]
3+
trait TraitA<'a> {
4+
const K: usize = 0;
5+
}
6+
impl<T> TraitA<'_> for () {}
7+
impl dyn TraitA<'_> where (): TraitA<'a,K = 0> {}
8+
9+
pub fn main() {}

tests/crashes/144033.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//@ known-bug: rust-lang/rust#144033
2+
trait FooMut {
3+
fn bar<I>(self, _: I)
4+
where
5+
for<'b> &'b I: Iterator<Item = &'b ()>;
6+
}
7+
8+
impl FooMut for () {
9+
fn bar<I>(self, _: I)
10+
where
11+
for<'b> &'b I: Iterator,
12+
{
13+
let collection = std::iter::empty::<()>().map(|_| &());
14+
self.bar(collection)
15+
}
16+
}

tests/crashes/144241.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//@ known-bug: rust-lang/rust#144241
2+
//@ edition:2024
3+
type _0 = dyn !Sized;

tests/crashes/144501.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//@ known-bug: rust-lang/rust#144501
2+
//@ needs-rustc-debug-assertions
3+
enum E {
4+
S0 {
5+
s: String,
6+
},
7+
Bar = {
8+
let x = 1;
9+
3
10+
},
11+
}
12+
13+
static C: E = E::S1 { u: 23 };

tests/crashes/144547.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//@ known-bug: rust-lang/rust#144547
2+
trait UnderlyingImpl<const MAX_SIZE: usize> {
3+
type InfoType: LevelInfo;
4+
type SupportedArray<T>;
5+
}
6+
7+
trait LevelInfo {
8+
const SUPPORTED_SLOTS: usize;
9+
}
10+
11+
struct Info;
12+
13+
impl LevelInfo for Info {
14+
const SUPPORTED_SLOTS: usize = 1;
15+
}
16+
17+
struct SomeImpl;
18+
19+
impl<const MAX_SIZE: usize> UnderlyingImpl<MAX_SIZE> for SomeImpl {
20+
type InfoType = Info;
21+
// This line makes compiler panic
22+
type SupportedArray<T> = [T; <Self::InfoType as LevelInfo>::SUPPORTED_SLOTS];
23+
// But this works
24+
//type SupportedArray<T> = [T; <Info as LevelInfo>::SUPPORTED_SLOTS];
25+
}

tests/crashes/144564.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//@ known-bug: rust-lang/rust#144564
2+
//@ needs-rustc-debug-assertions
3+
4+
trait Trait<'a> {
5+
type Out;
6+
}
7+
8+
fn weird_bound<X>() -> X
9+
where
10+
for<'a> X: Trait<'a>,
11+
<X as Trait<'a>>::Out: Copy,
12+
{
13+
todo!()
14+
}

0 commit comments

Comments
 (0)