// compile-pass
#![allow(dead_code)]
trait T {
    type X;
    const X: Self::X;
}
fn foo<X: T>() {
    let _: X::X = X::X;
}

trait S {
    const X: Self::X;
    type X;
}
fn bar<X: S>() {
    let _: X::X = X::X;
}

fn main() {}
