Rollup merge of #135061 - matthiaskrgr:crashes_jan, r=lqd
crashes: add latest batch of tests try-job: aarch64-apple try-job: x86_64-msvc try-job: x86_64-gnu try-job: dist-i586-gnu-i586-i686-musl
This commit is contained in:
commit
0da5bb405d
11 changed files with 184 additions and 0 deletions
11
tests/crashes/134336.rs
Normal file
11
tests/crashes/134336.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
//@ known-bug: #134336
|
||||||
|
#![expect(incomplete_features)]
|
||||||
|
#![feature(explicit_tail_calls)]
|
||||||
|
|
||||||
|
trait Tr {
|
||||||
|
fn f();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn g<T: Tr>() {
|
||||||
|
become T::f();
|
||||||
|
}
|
6
tests/crashes/134355.rs
Normal file
6
tests/crashes/134355.rs
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
//@ known-bug: #134355
|
||||||
|
|
||||||
|
//@compile-flags: --crate-type=lib
|
||||||
|
fn digit() -> str {
|
||||||
|
return { i32::MIN };
|
||||||
|
}
|
24
tests/crashes/134479.rs
Normal file
24
tests/crashes/134479.rs
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
//@ known-bug: #134479
|
||||||
|
//@ compile-flags: -Csymbol-mangling-version=v0 -Cdebuginfo=1
|
||||||
|
|
||||||
|
#![feature(generic_const_exprs)]
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
test::<2>();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Test<const N: usize>;
|
||||||
|
|
||||||
|
fn new<const N: usize>() -> Test<N>
|
||||||
|
where
|
||||||
|
[(); N * 1]: Sized,
|
||||||
|
{
|
||||||
|
Test
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test<const N: usize>() -> Test<{ N - 1 }>
|
||||||
|
where
|
||||||
|
[(); (N - 1) * 1]: Sized,
|
||||||
|
{
|
||||||
|
new()
|
||||||
|
}
|
27
tests/crashes/134587.rs
Normal file
27
tests/crashes/134587.rs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
//@ known-bug: #134587
|
||||||
|
|
||||||
|
use std::ops::Add;
|
||||||
|
|
||||||
|
pub fn foo<T>(slf: *const T)
|
||||||
|
where
|
||||||
|
*const T: Add,
|
||||||
|
{
|
||||||
|
slf + slf;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn foo2<T>(slf: *const T)
|
||||||
|
where
|
||||||
|
*const T: Add<u8>,
|
||||||
|
{
|
||||||
|
slf + 1_u8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub trait TimesTwo
|
||||||
|
where *const Self: Add<*const Self>,
|
||||||
|
{
|
||||||
|
extern "C" fn t2_ptr(slf: *const Self)
|
||||||
|
-> <*const Self as Add<*const Self>>::Output {
|
||||||
|
slf + slf
|
||||||
|
}
|
||||||
|
}
|
16
tests/crashes/134615.rs
Normal file
16
tests/crashes/134615.rs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
//@ known-bug: #134615
|
||||||
|
|
||||||
|
#![feature(generic_const_exprs)]
|
||||||
|
|
||||||
|
trait Trait {
|
||||||
|
const CONST: usize;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn f()
|
||||||
|
where
|
||||||
|
for<'a> (): Trait,
|
||||||
|
[(); <() as Trait>::CONST]:,
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn main() {}
|
13
tests/crashes/134641.rs
Normal file
13
tests/crashes/134641.rs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
//@ known-bug: #134641
|
||||||
|
#![feature(associated_const_equality)]
|
||||||
|
|
||||||
|
pub trait IsVoid {
|
||||||
|
const IS_VOID: bool;
|
||||||
|
}
|
||||||
|
impl IsVoid for () {
|
||||||
|
const IS_VOID: bool = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait Maybe {}
|
||||||
|
impl Maybe for () {}
|
||||||
|
impl Maybe for () where (): IsVoid<IS_VOID = true> {}
|
12
tests/crashes/134654.rs
Normal file
12
tests/crashes/134654.rs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
//@ known-bug: #134654
|
||||||
|
//@ compile-flags: -Zmir-enable-passes=+GVN -Zmir-enable-passes=+Inline -Zvalidate-mir
|
||||||
|
//@ only-x86_64
|
||||||
|
|
||||||
|
fn function_with_bytes<const BYTES:
|
||||||
|
&'static [u8; 0xa9008fb6c9d81e42_0e25730562a601c8_u128]>() -> &'static [u8] {
|
||||||
|
BYTES
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
function_with_bytes::<b"aa">() == &[];
|
||||||
|
}
|
14
tests/crashes/134838.rs
Normal file
14
tests/crashes/134838.rs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
//@ known-bug: #134838
|
||||||
|
#![feature(type_ascription)]
|
||||||
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
struct Ty(());
|
||||||
|
|
||||||
|
fn mk() -> impl Sized {
|
||||||
|
if false {
|
||||||
|
let _ = type_ascribe!(mk(), Ty).0;
|
||||||
|
}
|
||||||
|
Ty(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
16
tests/crashes/134905.rs
Normal file
16
tests/crashes/134905.rs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
//@ known-bug: #134905
|
||||||
|
|
||||||
|
trait Iterate<'a> {
|
||||||
|
type Ty: Valid;
|
||||||
|
}
|
||||||
|
impl<'a, T> Iterate<'a> for T
|
||||||
|
where
|
||||||
|
T: Check,
|
||||||
|
{
|
||||||
|
default type Ty = ();
|
||||||
|
}
|
||||||
|
|
||||||
|
trait Check {}
|
||||||
|
impl<'a, T> Eq for T where <T as Iterate<'a>>::Ty: Valid {}
|
||||||
|
|
||||||
|
trait Valid {}
|
11
tests/crashes/135020.rs
Normal file
11
tests/crashes/135020.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
//@ known-bug: #135020
|
||||||
|
|
||||||
|
pub fn problem_thingy(items: &mut impl Iterator<Item = str>) {
|
||||||
|
let mut peeker = items.peekable();
|
||||||
|
match peeker.peek() {
|
||||||
|
Some(_) => (),
|
||||||
|
None => return (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn main() {}
|
34
tests/crashes/135039.rs
Normal file
34
tests/crashes/135039.rs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
//@ known-bug: #135039
|
||||||
|
//@ edition:2021
|
||||||
|
|
||||||
|
pub type UserId<Backend> = <<Backend as AuthnBackend>::User as AuthUser>::Id;
|
||||||
|
|
||||||
|
pub trait AuthUser {
|
||||||
|
type Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait AuthnBackend {
|
||||||
|
type User: AuthUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct AuthSession<Backend: AuthnBackend> {
|
||||||
|
user: Option<Backend::User>,
|
||||||
|
data: Option<UserId<Backend>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait Authz: Sized {
|
||||||
|
type AuthnBackend: AuthnBackend<User = Self>;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait Query<User: Authz> {
|
||||||
|
type Output;
|
||||||
|
async fn run(&self) -> Result<Self::Output, ()>;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub async fn run_query<User: Authz, Q: Query<User> + 'static>(
|
||||||
|
auth: AuthSession<User::AuthnBackend>,
|
||||||
|
query: Q,
|
||||||
|
) -> Result<Q::Output, ()> {
|
||||||
|
let user = auth.user;
|
||||||
|
query.run().await
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue