Skip to content

Document association of generic arguments in path segments #2275

Description

@ehuss

There are some subtle behaviors around where generic arguments can appear in a path, particularly with enum variants. For example:

enum E<T> {
    V1 { x: T },
}

fn main() {
    // These seem to be the same.
    E::V1::<i32> { x: 1 };
    E::<i32>::V1 { x: 1 };
}

Are these exactly the same? I'm wondering if there are other oddities like this? This came up when looking at rust-lang/rust#154971.

#2165 is adding more documentation on generic arguments and how they are associated, but I don't think it covers this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions