rustdoc: add two regression tests

This commit is contained in:
León Orell Valerian Liehr 2024-09-09 22:35:10 +02:00
parent 842d6fc32e
commit 6d61dfd2e4
No known key found for this signature in database
GPG Key ID: D17A07215F68E713
3 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,14 @@
// Test to ensure that there is no ICE when normalizing a projection.
// See also <https://github.com/rust-lang/rust/pull/106938>.
// issue: rust-lang/rust#107872
pub trait Identity {
type Identity;
}
pub type Foo = u8;
pub union Bar {
a: <Foo as Identity>::Identity, //~ ERROR the trait bound `u8: Identity` is not satisfied
b: u8,
}

View File

@ -0,0 +1,15 @@
error[E0277]: the trait bound `u8: Identity` is not satisfied
--> $DIR/projection-as-union-type-error.rs:12:9
|
LL | a: <Foo as Identity>::Identity,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Identity` is not implemented for `u8`
|
help: this trait has no implementations, consider adding one
--> $DIR/projection-as-union-type-error.rs:5:1
|
LL | pub trait Identity {
| ^^^^^^^^^^^^^^^^^^
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.

View File

@ -0,0 +1,23 @@
// issue: rust-lang/rust#98250
//@ check-pass
#![feature(type_alias_impl_trait)]
mod foo {
pub type Foo = impl PartialEq<(Foo, i32)>;
fn foo() -> Foo {
super::Bar
}
}
use foo::Foo;
struct Bar;
impl PartialEq<(Foo, i32)> for Bar {
fn eq(&self, _other: &(Foo, i32)) -> bool {
true
}
}
fn main() {}