From 7745b065cc553c55d63aaad5f000502e2edd6257 Mon Sep 17 00:00:00 2001 From: cyrgani Date: Sat, 2 Nov 2024 23:44:12 +0100 Subject: [PATCH] add and update some crashtests --- tests/crashes/126268.rs | 18 ++++++++++++++++++ tests/crashes/131050.rs | 20 ++++++++------------ tests/crashes/132126.rs | 2 ++ 3 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 tests/crashes/126268.rs create mode 100644 tests/crashes/132126.rs diff --git a/tests/crashes/126268.rs b/tests/crashes/126268.rs new file mode 100644 index 0000000000000..82e52fa115dc9 --- /dev/null +++ b/tests/crashes/126268.rs @@ -0,0 +1,18 @@ +//@ known-bug: #126268 +#![feature(min_specialization)] + +trait Trait {} + +impl Trait for T {} + +trait Data { + type Elem; +} + +struct DatasetIter<'a, R: Data> { + data: &'a R::Elem, +} + +pub struct ArrayBase {} + +impl<'a> Trait for DatasetIter<'a, ArrayBase> {} diff --git a/tests/crashes/131050.rs b/tests/crashes/131050.rs index 07f8662d016f7..3e3a600ef3de4 100644 --- a/tests/crashes/131050.rs +++ b/tests/crashes/131050.rs @@ -1,25 +1,21 @@ //@ known-bug: #131050 //@ compile-flags: --edition=2021 -fn query_as() {} +use std::future::Future; -async fn create_user() { - query_as(); -} +fn invalid_future() -> impl Future {} -async fn post_user_filter() -> impl Filter { - AndThen(&(), || async { create_user().await }) +fn create_complex_future() -> impl Future { + async { &|| async { invalid_future().await } } } -async fn get_app() -> impl Send { - post_user_filter().await +fn coerce_impl_trait() -> impl Future { + create_complex_future() } -trait Filter {} - -struct AndThen(T, F); +trait ReturnsSend {} -impl Filter for AndThen +impl ReturnsSend for F where F: Fn() -> R, R: Send, diff --git a/tests/crashes/132126.rs b/tests/crashes/132126.rs new file mode 100644 index 0000000000000..6a42853d4694f --- /dev/null +++ b/tests/crashes/132126.rs @@ -0,0 +1,2 @@ +//@ known-bug: #132126 +trait UnsafeCopy where Self: use {}