Be sure that we do not allow too much

This commit is contained in:
Santiago Pastorino 2021-10-22 15:55:56 -03:00
parent 132409f0c6
commit 9e264137e9
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
2 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,20 @@
#![feature(rustc_attrs)]
#![feature(trait_alias)]
trait A {}
trait B {}
trait AB = A + B;
impl A for u32 {}
impl B for u32 {}
trait C {}
#[rustc_strict_coherence]
impl<T: AB> C for T {}
#[rustc_strict_coherence]
impl C for u32 {}
//~^ ERROR
// FIXME it's giving an ungreat error but unsure if we care given that it's using an internal rustc
// attribute and an artificial code path for testing purposes
fn main() {}

View file

@ -0,0 +1,16 @@
error[E0283]: type annotations needed
--> $DIR/coherence-overlap-trait-alias.rs:15:6
|
LL | impl C for u32 {}
| ^ cannot infer type for type `u32`
|
= note: cannot satisfy `u32: C`
note: required by a bound in `C`
--> $DIR/coherence-overlap-trait-alias.rs:11:1
|
LL | trait C {}
| ^^^^^^^ required by this bound in `C`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0283`.