diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-19 11:04:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-19 11:04:09 -0400 |
| commit | 0fd615f70e9482dbec68cc19f1126c4660e4f22a (patch) | |
| tree | 7acbea60f2e155c177ea6876b1ad0e41ff5d0339 | |
| parent | edace328b88d6c9865137a85152f79464523984a (diff) | |
| parent | 734e216b35e3539994e090f0c293d8610c03dc88 (diff) | |
| download | rust-0fd615f70e9482dbec68cc19f1126c4660e4f22a.tar.gz rust-0fd615f70e9482dbec68cc19f1126c4660e4f22a.zip | |
Rollup merge of #125261 - matthiaskrgr:from_ashes_to_crashes, r=jieyouxu
crashes: add more r? ``@jieyouxu``
| -rw-r--r-- | tests/crashes/124833.rs | 10 | ||||
| -rw-r--r-- | tests/crashes/124857.rs | 11 | ||||
| -rw-r--r-- | tests/crashes/124891.rs | 22 | ||||
| -rw-r--r-- | tests/crashes/124894.rs | 11 | ||||
| -rw-r--r-- | tests/crashes/125081.rs | 7 | ||||
| -rw-r--r-- | tests/crashes/125099.rs | 24 | ||||
| -rw-r--r-- | tests/crashes/125155.rs | 17 | ||||
| -rw-r--r-- | tests/crashes/125185.rs | 16 | ||||
| -rw-r--r-- | tests/crashes/125249.rs | 8 |
9 files changed, 126 insertions, 0 deletions
diff --git a/tests/crashes/124833.rs b/tests/crashes/124833.rs new file mode 100644 index 00000000000..f1c4847b544 --- /dev/null +++ b/tests/crashes/124833.rs @@ -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"; +} diff --git a/tests/crashes/124857.rs b/tests/crashes/124857.rs new file mode 100644 index 00000000000..4b952fd64cc --- /dev/null +++ b/tests/crashes/124857.rs @@ -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 {} diff --git a/tests/crashes/124891.rs b/tests/crashes/124891.rs new file mode 100644 index 00000000000..9b5892418c8 --- /dev/null +++ b/tests/crashes/124891.rs @@ -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 {} diff --git a/tests/crashes/124894.rs b/tests/crashes/124894.rs new file mode 100644 index 00000000000..230cf4a89c1 --- /dev/null +++ b/tests/crashes/124894.rs @@ -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 {} diff --git a/tests/crashes/125081.rs b/tests/crashes/125081.rs new file mode 100644 index 00000000000..7139caaa00d --- /dev/null +++ b/tests/crashes/125081.rs @@ -0,0 +1,7 @@ +//@ known-bug: rust-lang/rust#125081 + +use std::cell::Cell; + +fn main() { + let _: Cell<&str, "a"> = Cell::new('β); +} diff --git a/tests/crashes/125099.rs b/tests/crashes/125099.rs new file mode 100644 index 00000000000..bfc8c8fdcf6 --- /dev/null +++ b/tests/crashes/125099.rs @@ -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() {} diff --git a/tests/crashes/125155.rs b/tests/crashes/125155.rs new file mode 100644 index 00000000000..165061d4b52 --- /dev/null +++ b/tests/crashes/125155.rs @@ -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, + } +} diff --git a/tests/crashes/125185.rs b/tests/crashes/125185.rs new file mode 100644 index 00000000000..8693d6c7662 --- /dev/null +++ b/tests/crashes/125185.rs @@ -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 => {} + + _ => (), + } +} diff --git a/tests/crashes/125249.rs b/tests/crashes/125249.rs new file mode 100644 index 00000000000..18196d7b34f --- /dev/null +++ b/tests/crashes/125249.rs @@ -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() {} |
