self_in_typedefs

The tracking issue for this feature is: #49303


The self_in_typedefs feature gate lets you use the special Self identifier in struct, enum, and union type definitions.

A simple example is:


# #![allow(unused_variables)]
#![feature(self_in_typedefs)]

#fn main() {
enum List<T>
where
    Self: PartialOrd<Self> // can write `Self` instead of `List<T>`
{
    Nil,
    Cons(T, Box<Self>) // likewise here
}
#}