mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-21 17:52:12 +03:00
32 lines
674 B
Rust
32 lines
674 B
Rust
//@ compile-flags: -Znext-solver
|
|
|
|
// The `cause` in `Obligation` is ignored by type folders. So infer vars in cause code is not
|
|
// fudged.
|
|
// Check the comments of
|
|
// `leaking-vars-in-cause-code-1.rs` for more details.
|
|
trait Trait<T> {}
|
|
struct A<T>(T);
|
|
struct B<T>(T);
|
|
|
|
trait IncompleteGuidance {}
|
|
|
|
impl<T> Trait<()> for A<T>
|
|
where
|
|
T: IncompleteGuidance,
|
|
{
|
|
}
|
|
|
|
impl<T, U> Trait<()> for B<T>
|
|
//~^ ERROR: the type parameter `U` is not constrained by the impl trait, self type, or predicates
|
|
where
|
|
A<T>: Trait<U>,
|
|
{
|
|
}
|
|
|
|
fn impls_trait<T: Trait<()>>() {}
|
|
|
|
fn main() {
|
|
impls_trait::<B<()>>();
|
|
//~^ ERROR: the trait bound `(): IncompleteGuidance` is not satisfied
|
|
}
|