| // Test that we don't assume that the penultimate segment of an enum variant path refers to the |
| // enum just because it has generic arguments. |
| // |
| // We once used to accept the code below interpreting `module::<i32>::Variant` |
| // as `module::Variant::<i32>` basically. |
| // |
| // issue: <https://github.com/rust-lang/rust/issues/154962> |
| |
| enum Enum<T> { Variant, Carry(T) } |
| |
| mod module { pub(super) use super::Enum::Variant; } |
| |
| fn main() { |
| let _ = module::<i32>::Variant; |
| //~^ ERROR type arguments are not allowed on module `module` |
| |
| let _ = self::module::<()>::Variant {}; |
| //~^ ERROR type arguments are not allowed on module `module` |
| } |