| Index: tests/compiler/dart2js/type_checker_test.dart
|
| diff --git a/tests/compiler/dart2js/type_checker_test.dart b/tests/compiler/dart2js/type_checker_test.dart
|
| index c7ab34ba36a8ddb64a05cf47adc9e55a95dfd2b6..9774d9043ad4d4e24b5cbbcf7574eafa6b66a0af 100644
|
| --- a/tests/compiler/dart2js/type_checker_test.dart
|
| +++ b/tests/compiler/dart2js/type_checker_test.dart
|
| @@ -29,6 +29,7 @@ main() {
|
| testWhile,
|
| testTry,
|
| testSwitch,
|
| + testEnumSwitch,
|
| testOperators,
|
| testConstructorInvocationArgumentCount,
|
| testConstructorInvocationArgumentTypes,
|
| @@ -169,6 +170,89 @@ testSwitch(MockCompiler compiler) {
|
| warnings: [NOT_ASSIGNABLE, NOT_ASSIGNABLE]);
|
| }
|
|
|
| +testEnumSwitch(MockCompiler compiler) {
|
| + String DECLARATIONS = """
|
| +enum Enum { A, B, C }
|
| +""";
|
| +
|
| + check(String code, {warnings}) {
|
| + MockCompiler compiler = new MockCompiler.internal(enableEnums: true);
|
| + return compiler.init(DECLARATIONS).then((_) {
|
| + analyze(compiler, code, warnings: warnings);
|
| + });
|
| + }
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +default: break;
|
| +}""");
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +default: break;
|
| +}""");
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +case Enum.B: break;
|
| +default: break;
|
| +}""");
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +case Enum.B: break;
|
| +case Enum.C: break;
|
| +default: break;
|
| +}""");
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +case Enum.B: break;
|
| +case Enum.C: break;
|
| +}""");
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.B: break;
|
| +case Enum.C: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +case Enum.C: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +case Enum.B: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.A: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.B: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +case Enum.C: break;
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +
|
| + check("""
|
| +switch (Enum.A) {
|
| +}""", warnings: MessageKind.MISSING_ENUM_CASES);
|
| +}
|
| +
|
| testOperators(MockCompiler compiler) {
|
| check(String code, {warnings}) {
|
| analyze(compiler, code, warnings: warnings);
|
|
|