blob: 672d042589a7a5d390ba2c51c5d6b9ef6ce0d0ab [file] [log] [blame]
void main() {}
class AssertIdentical {
const AssertIdentical(Object? v1, Object? v2)
: assert(identical(v1, v2), "${(v1, v2)}");
const AssertIdentical.not(Object? v1, Object? v2)
: assert(!identical(v1, v2), "${(v1, v2)}");
}
class C<T> {
final T value;
C(this.value);
C.named(this.value);
C.redirect(T value) : this.named(value);
factory C.factory(T value) => C<T>(value);
factory C.factoryRedirect(T value) = C<T>;
}
typedef ACI = C<int>;
typedef ACR<T> = C<T>;
typedef ACN<T extends num> = C<T>;
void checkClass() {}
extension type E<T>(T value) {
E.named(this.value);
E.redirect(T value) : this.named(value);
factory E.factory(T value) => E<T>(value);
factory E.factoryRedirect(T value) = E<T>;
}
typedef AEI = E<int>;
typedef AER<T> = E<T>;
typedef AEN<T extends num> = E<T>;
void checkExtensionType() {}