Skip to content

Self alias as struct constructor #1588

@durka

Description

@durka

Consider the following code

struct Foo { a: i32 }

impl Default for Foo {
    fn default() -> Self {
        Foo { a: 42 }
    }
}

We can't replace the last use of Foo in the impl with Self (you get E0071). But Self is a kind of type alias, or it acts like one anyway, and normally you can construct a struct through a type alias. So we should allow usage of Self like this.

brought up here cc @huonw

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-langRelevant to the language team, which will review and decide on the RFC.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions