type_alias_enum_variants
The tracking issue for this feature is: #49683
The type_alias_enum_variants
feature enables the use of variants on type
aliases that refer to enums, as both a constructor and a pattern. That is,
it allows for the syntax EnumAlias::Variant
, which behaves exactly the same
as Enum::Variant
(assuming that EnumAlias
is an alias for some enum type
Enum
).
Note that since Self
exists as a type alias, this feature also enables the
use of the syntax Self::Variant
within an impl block for an enum type.
#![feature(type_alias_enum_variants)] enum Foo { Bar(i32), Baz { i: i32 }, } type Alias = Foo; fn main() { let t = Alias::Bar(0); let t = Alias::Baz { i: 0 }; match t { Alias::Bar(_i) => {} Alias::Baz { i: _i } => {} } }