//@ check-pass struct S; enum E { V, } type A = E; fn main() { let mut a; S = S; (S, a) = (S, ()); E::V = E::V; (E::V, a) = (E::V, ()); ::V = E::V; (::V, a) = (E::V, ()); A::V = A::V; (A::V, a) = (E::V, ()); } impl S { fn check() { let a; Self = S; (Self, a) = (S, ()); } } impl E { fn check() { let a; Self::V = E::V; (Self::V, a) = (E::V, ()); } }