mirror of https://github.com/rust-lang/rust
32 lines
552 B
Rust
32 lines
552 B
Rust
//@ compile-flags: -Zvalidate-mir
|
|
//@ check-pass
|
|
|
|
// Check that we don't cause cycle errors when validating pre-`Reveal::All` MIR
|
|
// that assigns opaques through normalized projections.
|
|
|
|
#![feature(impl_trait_in_assoc_type)]
|
|
|
|
struct Bar;
|
|
|
|
trait Trait {
|
|
type Assoc;
|
|
fn foo() -> Foo;
|
|
}
|
|
|
|
impl Trait for Bar {
|
|
type Assoc = impl std::fmt::Debug;
|
|
fn foo() -> Foo
|
|
where
|
|
Self::Assoc:,
|
|
{
|
|
let x: <Bar as Trait>::Assoc = ();
|
|
Foo { field: () }
|
|
}
|
|
}
|
|
|
|
struct Foo {
|
|
field: <Bar as Trait>::Assoc,
|
|
}
|
|
|
|
fn main() {}
|