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
Consider the following code
We can't replace the last use of
Fooin the impl withSelf(you get E0071). ButSelfis 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 ofSelflike this.brought up here cc @huonw