Rollup merge of #129869 - cyrgani:master, r=Mark-Simulacrum

add a few more crashtests

Added them for #123629, #127033 and #129372.
This commit is contained in:
Matthias Krüger 2024-09-07 23:30:13 +02:00 committed by GitHub
commit a88b1af7c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 80 additions and 0 deletions

10
tests/crashes/123629.rs Normal file
View File

@ -0,0 +1,10 @@
//@ known-bug: #123629
#![feature(generic_assert)]
fn foo()
where
for<const N: usize = { assert!(u) }> ():,
{
}
fn main() {}

18
tests/crashes/127033.rs Normal file
View File

@ -0,0 +1,18 @@
//@ known-bug: #127033
//@ compile-flags: --edition=2021
pub trait RaftLogStorage {
fn save_vote(vote: ()) -> impl std::future::Future + Send;
}
struct X;
impl RaftLogStorage for X {
fn save_vote(vote: ()) -> impl std::future::Future {
loop {}
async {
vote
}
}
}
fn main() {}

52
tests/crashes/129372.rs Normal file
View File

@ -0,0 +1,52 @@
//@ known-bug: #129372
//@ compile-flags: -Cdebuginfo=2 -Copt-level=0
pub struct Wrapper<T>(T);
struct Struct;
pub trait TraitA {
type AssocA<'t>;
}
pub trait TraitB {
type AssocB;
}
pub fn helper(v: impl MethodTrait) {
let _local_that_causes_ice = v.method();
}
pub fn main() {
helper(Wrapper(Struct));
}
pub trait MethodTrait {
type Assoc<'a>;
fn method(self) -> impl for<'a> FnMut(&'a ()) -> Self::Assoc<'a>;
}
impl<T: TraitB> MethodTrait for T
where
<T as TraitB>::AssocB: TraitA,
{
type Assoc<'a> = <T::AssocB as TraitA>::AssocA<'a>;
fn method(self) -> impl for<'a> FnMut(&'a ()) -> Self::Assoc<'a> {
move |_| loop {}
}
}
impl<T, B> TraitB for Wrapper<B>
where
B: TraitB<AssocB = T>,
{
type AssocB = T;
}
impl TraitB for Struct {
type AssocB = Struct;
}
impl TraitA for Struct {
type AssocA<'t> = Self;
}