Rollup merge of #129500 - fee1-dead-contrib:fxrel, r=compiler-errors
remove invalid `TyCompat` relation for effects if the current impl uses `Maybe` (`impl const`), the parent impl must use `Maybe` (`impl const`) as well. I'd like to rename `TyCompat` to `Sub` which is probably clearer. But it would conflict with my other PR. r? ``@rust-lang/project-const-traits``
This commit is contained in:
commit
3f5d6b2e40
@ -1097,7 +1097,6 @@ impl<#[rustc_runtime] const RUNTIME: bool> Compat<RUNTIME> for Maybe {}
|
||||
pub trait TyCompat<T: ?Sized> {}
|
||||
|
||||
impl<T: ?Sized> TyCompat<T> for T {}
|
||||
impl<T: ?Sized> TyCompat<T> for Maybe {}
|
||||
impl<T: ?Sized> TyCompat<Maybe> for T {}
|
||||
|
||||
#[lang = "EffectsIntersection"]
|
||||
|
@ -1,4 +1,4 @@
|
||||
//@ check-pass
|
||||
//~ ERROR the trait bound
|
||||
//@ compile-flags: -Znext-solver
|
||||
|
||||
#![allow(incomplete_features)]
|
||||
@ -17,6 +17,6 @@ fn a(&self) {}
|
||||
}
|
||||
|
||||
impl const Bar for S {}
|
||||
//FIXME ~^ ERROR the trait bound
|
||||
// FIXME(effects) bad span
|
||||
|
||||
fn main() {}
|
||||
|
@ -0,0 +1,11 @@
|
||||
error[E0277]: the trait bound `Maybe: TyCompat<<(Foo::{synthetic#0},) as std::marker::effects::Intersection>::Output>` is not satisfied
|
||||
|
|
||||
note: required by a bound in `Bar::{synthetic#0}`
|
||||
--> $DIR/super-traits-fail.rs:11:1
|
||||
|
|
||||
LL | #[const_trait]
|
||||
| ^^^^^^^^^^^^^^ required by this bound in `Bar::{synthetic#0}`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
Loading…
Reference in New Issue
Block a user