blob: e39854cde187f1ebd3413f5e780b1c7c7318c99a [file]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
enum E { a, b, c }
typedef Typedef = E;
membersMethod(o) {
return /*
checkingOrder={Object?,Object,Null},
fields={hashCode:int,noSuchMethod:dynamic Function(Invocation),runtimeType:Type,toString:String Function()},
subtypes={Object,Null},
type=Object?
*/ switch (o) {
Typedef(:var hashCode) /*space=E(hashCode: int)*/ => hashCode,
Typedef(:var runtimeType) /*
error=unreachable,
space=E(runtimeType: Type)
*/ =>
runtimeType,
Typedef(:var toString) /*
error=unreachable,
space=E(toString: String Function())
*/ =>
toString(),
Typedef(:var noSuchMethod) /*
error=unreachable,
space=E(noSuchMethod: dynamic Function(Invocation))
*/ =>
noSuchMethod,
_ /*space=()*/ => null,
};
}
exhaustiveHashCode(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
fields={hashCode:int},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(:int hashCode) /*space=E(hashCode: int)*/ => hashCode,
};
}
exhaustiveRuntimeType(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
fields={runtimeType:Type},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(:Type runtimeType) /*space=E(runtimeType: Type)*/ => runtimeType,
};
}
exhaustiveToString(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
fields={toString:String Function()},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(
:String Function() toString,
) /*space=E(toString: String Function())*/ =>
toString,
};
}
exhaustiveNoSuchMethod(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
fields={noSuchMethod:dynamic Function(Invocation)},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(
:dynamic Function(Invocation) noSuchMethod,
) /*space=E(noSuchMethod: dynamic Function(Invocation))*/ =>
noSuchMethod,
};
}
nonExhaustiveRestrictedValue(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
error=non-exhaustive:E.a && Object(hashCode: int())/E.a;E.b && Object(hashCode: int())/E.b;E.c && Object(hashCode: int())/E.c,
fields={hashCode:int},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(hashCode: 5) /*space=E(hashCode: 5)*/ => 5,
};
}
exhaustiveRestrictedValue(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
error=non-exhaustive:E.b && Object(hashCode: int())/E.b;E.c && Object(hashCode: int())/E.c,
fields={hashCode:int},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(hashCode: 5) /*space=E(hashCode: 5)*/ => 5,
E.a && Object(hashCode: int()) /*space=E.a(hashCode: int)*/ => null,
};
}
nonExhaustiveRestrictedType(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
error=non-exhaustive:E.a && Object(noSuchMethod: dynamic Function(Invocation) _)/E.a;E.b && Object(noSuchMethod: dynamic Function(Invocation) _)/E.b;E.c && Object(noSuchMethod: dynamic Function(Invocation) _)/E.c,
fields={noSuchMethod:dynamic Function(Invocation)},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(
:int Function(Invocation) noSuchMethod,
) /*space=E(noSuchMethod: int Function(Invocation))*/ =>
noSuchMethod,
};
}
exhaustiveRestrictedType(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
error=non-exhaustive:E.b && Object(noSuchMethod: dynamic Function(Invocation) _)/E.b;E.c && Object(noSuchMethod: dynamic Function(Invocation) _)/E.c,
fields={noSuchMethod:dynamic Function(Invocation)},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(
:int Function(Invocation) noSuchMethod,
) /*space=E(noSuchMethod: int Function(Invocation))*/ =>
noSuchMethod,
E.a &&
Object(
noSuchMethod: dynamic Function(Invocation) _,
) /*space=E.a(noSuchMethod: dynamic Function(Invocation))*/ =>
null,
};
}
unreachableMethod(Typedef o) {
return /*
checkingOrder={E,E.a,E.b,E.c},
fields={hashCode:int,noSuchMethod:dynamic Function(Invocation),runtimeType:Type,toString:String Function()},
subtypes={E.a,E.b,E.c},
type=E
*/ switch (o) {
Typedef(:var hashCode) /*space=E(hashCode: int)*/ => hashCode,
Typedef(:var runtimeType) /*
error=unreachable,
space=E(runtimeType: Type)
*/ =>
runtimeType,
Typedef(:var toString) /*
error=unreachable,
space=E(toString: String Function())
*/ =>
toString(),
Typedef(:var noSuchMethod) /*
error=unreachable,
space=E(noSuchMethod: dynamic Function(Invocation))
*/ =>
noSuchMethod,
};
}