class Class {
  const Class([a]);
  const Class.named({a, b});
}

class GenericClass<X, Y> {
  const GenericClass();
  const GenericClass.named({a, b});
}

typedef Alias = Class;

typedef ComplexAlias<X> = Class;

typedef GenericAlias<X, Y> = GenericClass<X, Y>;

@Class(Alias.named())
@Class(ComplexAlias())
@Class(ComplexAlias.named())
@Class(GenericAlias())
@Class(GenericAlias.named())
void type() {}
