//@ revisions: tuple unit struct_ //@[unit] check-pass #[cfg(unit)] mod unit { struct S; impl S { fn foo() { let Self = S; } } } #[cfg(tuple)] mod tuple { struct S(()); impl S { fn foo() { let Self = S; //[tuple]~^ ERROR expected unit struct } } } #[cfg(struct_)] mod struct_ { struct S {} impl S { fn foo() { let Self = S; //[struct_]~^ ERROR expected value, found struct `S` //[struct_]~| ERROR expected unit struct, found self constructor `Self` } } } fn main() {}