library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:33: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A1 extends B implements D with C {}
//                                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:23: Error: The extends clause must be before the implements clause.
// Try moving the extends clause before the implements clause.
// class A2 implements D extends B with C {}
//                       ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:33: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A2 implements D extends B with C {}
//                                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:23: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A3 implements D with C extends B {}
//                       ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:30: Error: The extends clause must be before the with clause.
// Try moving the extends clause before the with clause.
// class A3 implements D with C extends B {}
//                              ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:30: Error: The extends clause must be before the with clause.
// Try moving the extends clause before the with clause.
// class A4 with C implements D extends B {}
//                              ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:17: Error: The extends clause must be before the with clause.
// Try moving the extends clause before the with clause.
// class A5 with C extends B implements D {}
//                 ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:40: Error: Each class definition can have at most one extends clause.
// Try choosing one superclass and define your class to implement (or mix in) the others.
// class A6 extends B with C implements D extends B {}
//                                        ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:40: Error: Each class definition can have at most one implements clause.
// Try combining all of the implements clauses into a single clause.
// class A7 extends B with C implements D implements D {}
//                                        ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:40: Error: Each class definition can have at most one with clause.
// Try combining all of the with clauses into a single clause.
// class A8 extends B with C implements D with C {}
//                                        ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:33: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A9 extends B implements D with C extends B {}
//                                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:40: Error: Each class definition can have at most one extends clause.
// Try choosing one superclass and define your class to implement (or mix in) the others.
// class A9 extends B implements D with C extends B {}
//                                        ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:34: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A10 extends B implements D with C implements D {}
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:41: Error: Each class definition can have at most one implements clause.
// Try combining all of the implements clauses into a single clause.
// class A10 extends B implements D with C implements D {}
//                                         ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:34: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A11 extends B implements D with C with C {}
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:41: Error: Each class definition can have at most one with clause.
// Try combining all of the with clauses into a single clause.
// class A11 extends B implements D with C with C {}
//                                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:21: Error: Each class definition can have at most one extends clause.
// Try choosing one superclass and define your class to implement (or mix in) the others.
// class A12 extends B extends B with C implements D {}
//                     ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:28: Error: Each class definition can have at most one with clause.
// Try combining all of the with clauses into a single clause.
// class A13 extends B with C with C implements D {}
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:41: Error: Each class definition can have at most one implements clause.
// Try combining all of the implements clauses into a single clause.
// class A14 extends B with C implements D implements D {}
//                                         ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:18: Error: The extends clause must be before the with clause.
// Try moving the extends clause before the with clause.
// class A15 with D extends B {}
//                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:21:24: Error: The extends clause must be before the implements clause.
// Try moving the extends clause before the implements clause.
// class A16 implements D extends B {}
//                        ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:22:24: Error: The with clause must be before the implements clause.
// Try moving the with clause before the implements clause.
// class A17 implements D with C {}
//                        ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:23:19: Error: Expected a type, but got '{'.
// class A18 extends {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:24:26: Error: Expected a type, but got '{'.
// class A19 extends B with {}
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:25:16: Error: Expected a type, but got '{'.
// class A20 with {}
//                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:39: Error: Expected a type, but got '{'.
// class A21 extends B with C implements {}
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:27:29: Error: Expected a type, but got '{'.
// class A22 with C implements {}
//                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:28:22: Error: Expected a type, but got '{'.
// class A23 implements {}
//                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:29:29: Error: Expected a type, but got '{'.
// class A24 extends B extends {}
//                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:29:21: Error: Each class definition can have at most one extends clause.
// Try choosing one superclass and define your class to implement (or mix in) the others.
// class A24 extends B extends {}
//                     ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:30:23: Error: Expected a type, but got '{'.
// class A25 with C with {}
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:30:18: Error: Each class definition can have at most one with clause.
// Try combining all of the with clauses into a single clause.
// class A25 with C with {}
//                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:31:35: Error: Expected a type, but got '{'.
// class A26 implements D implements {}
//                                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:31:24: Error: Each class definition can have at most one implements clause.
// Try combining all of the implements clauses into a single clause.
// class A26 implements D implements {}
//                        ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:14: Error: Expected 'with' before this.
// class N1 = B implements D with C;
//              ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:25: Error: Expected ';' after this.
// class N1 = B implements D with C;
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:27: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N1 = B implements D with C;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:27: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N1 = B implements D with C;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:27: Error: Expected ';' after this.
// class N1 = B implements D with C;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:32: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N1 = B implements D with C;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:12: Error: The built-in identifier 'implements' can't be used as a type.
// class N2 = implements D extends B with C;
//            ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:23: Error: Expected 'with' before this.
// class N2 = implements D extends B with C;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:23: Error: Expected ';' after this.
// class N2 = implements D extends B with C;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:25: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N2 = implements D extends B with C;
//                         ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:25: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N2 = implements D extends B with C;
//                         ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:25: Error: Expected ';' after this.
// class N2 = implements D extends B with C;
//                         ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:33: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N2 = implements D extends B with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:33: Error: Expected ';' after this.
// class N2 = implements D extends B with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:35: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N2 = implements D extends B with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:35: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N2 = implements D extends B with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:35: Error: Expected ';' after this.
// class N2 = implements D extends B with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:35: Error: 'with' is already declared in this scope.
// class N2 = implements D extends B with C;
//                                   ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:27: Context: Previous declaration of 'with'.
// class N1 = B implements D with C;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N2 = implements D extends B with C;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:40: Error: 'C' is already declared in this scope.
// class N2 = implements D extends B with C;
//                                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:32: Context: Previous declaration of 'C'.
// class N1 = B implements D with C;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:12: Error: The built-in identifier 'implements' can't be used as a type.
// class N3 = implements D with C extends B;
//            ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:23: Error: Expected 'with' before this.
// class N3 = implements D with C extends B;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:23: Error: Expected ';' after this.
// class N3 = implements D with C extends B;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:25: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N3 = implements D with C extends B;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:25: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N3 = implements D with C extends B;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:25: Error: Expected ';' after this.
// class N3 = implements D with C extends B;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:25: Error: 'with' is already declared in this scope.
// class N3 = implements D with C extends B;
//                         ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:35: Context: Previous declaration of 'with'.
// class N2 = implements D extends B with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:30: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N3 = implements D with C extends B;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:30: Error: Expected ';' after this.
// class N3 = implements D with C extends B;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:30: Error: 'C' is already declared in this scope.
// class N3 = implements D with C extends B;
//                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:40: Context: Previous declaration of 'C'.
// class N2 = implements D extends B with C;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:32: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N3 = implements D with C extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:32: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N3 = implements D with C extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:32: Error: Expected ';' after this.
// class N3 = implements D with C extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:32: Error: 'extends' is already declared in this scope.
// class N3 = implements D with C extends B;
//                                ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:25: Context: Previous declaration of 'extends'.
// class N2 = implements D extends B with C;
//                         ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N3 = implements D with C extends B;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:40: Error: 'B' is already declared in this scope.
// class N3 = implements D with C extends B;
//                                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:33: Context: Previous declaration of 'B'.
// class N2 = implements D extends B with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:12: Error: Expected a type, but got 'with'.
// class N4 = with C implements D extends B;
//            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:30: Error: Expected ';' after this.
// class N4 = with C implements D extends B;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:32: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N4 = with C implements D extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:32: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N4 = with C implements D extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:32: Error: Expected ';' after this.
// class N4 = with C implements D extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:32: Error: 'extends' is already declared in this scope.
// class N4 = with C implements D extends B;
//                                ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:32: Context: Previous declaration of 'extends'.
// class N3 = implements D with C extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N4 = with C implements D extends B;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:40: Error: 'B' is already declared in this scope.
// class N4 = with C implements D extends B;
//                                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:40: Context: Previous declaration of 'B'.
// class N3 = implements D with C extends B;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:12: Error: Expected a type, but got 'with'.
// class N5 = with C extends B implements D;
//            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:17: Error: Expected ';' after this.
// class N5 = with C extends B implements D;
//                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N5 = with C extends B implements D;
//                   ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:19: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N5 = with C extends B implements D;
//                   ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:19: Error: Expected ';' after this.
// class N5 = with C extends B implements D;
//                   ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:19: Error: 'extends' is already declared in this scope.
// class N5 = with C extends B implements D;
//                   ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:32: Context: Previous declaration of 'extends'.
// class N4 = with C implements D extends B;
//                                ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:29: Error: Expected ';' after this.
// class N5 = with C extends B implements D;
//                             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N5 = with C extends B implements D;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:32: Error: Expected ';' after this.
// class N6 = B with C implements D extends B;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:34: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N6 = B with C implements D extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:34: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N6 = B with C implements D extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:34: Error: Expected ';' after this.
// class N6 = B with C implements D extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:34: Error: 'extends' is already declared in this scope.
// class N6 = B with C implements D extends B;
//                                  ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:19: Context: Previous declaration of 'extends'.
// class N5 = with C extends B implements D;
//                   ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:42: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N6 = B with C implements D extends B;
//                                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:42: Error: 'B' is already declared in this scope.
// class N6 = B with C implements D extends B;
//                                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:40: Context: Previous declaration of 'B'.
// class N4 = with C implements D extends B;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:32: Error: Expected ';' after this.
// class N7 = B with C implements D implements D;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:34: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N7 = B with C implements D implements D;
//                                  ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:34: Error: Expected ';' after this.
// class N7 = B with C implements D implements D;
//                                  ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:34: Error: 'implements' is already declared in this scope.
// class N7 = B with C implements D implements D;
//                                  ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:29: Context: Previous declaration of 'implements'.
// class N5 = with C extends B implements D;
//                             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:45: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N7 = B with C implements D implements D;
//                                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:45: Error: 'D' is already declared in this scope.
// class N7 = B with C implements D implements D;
//                                             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:40: Context: Previous declaration of 'D'.
// class N5 = with C extends B implements D;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:32: Error: Expected ';' after this.
// class N8 = B with C implements D with C;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:34: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N8 = B with C implements D with C;
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:34: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N8 = B with C implements D with C;
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:34: Error: Expected ';' after this.
// class N8 = B with C implements D with C;
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:34: Error: 'with' is already declared in this scope.
// class N8 = B with C implements D with C;
//                                  ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:25: Context: Previous declaration of 'with'.
// class N3 = implements D with C extends B;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:39: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N8 = B with C implements D with C;
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:39: Error: 'C' is already declared in this scope.
// class N8 = B with C implements D with C;
//                                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:30: Context: Previous declaration of 'C'.
// class N3 = implements D with C extends B;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:14: Error: Expected 'with' before this.
// class N9 = B implements D with C extends B;
//              ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:25: Error: Expected ';' after this.
// class N9 = B implements D with C extends B;
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:27: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N9 = B implements D with C extends B;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:27: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N9 = B implements D with C extends B;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:27: Error: Expected ';' after this.
// class N9 = B implements D with C extends B;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:27: Error: 'with' is already declared in this scope.
// class N9 = B implements D with C extends B;
//                           ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:34: Context: Previous declaration of 'with'.
// class N8 = B with C implements D with C;
//                                  ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:32: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N9 = B implements D with C extends B;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:32: Error: Expected ';' after this.
// class N9 = B implements D with C extends B;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:32: Error: 'C' is already declared in this scope.
// class N9 = B implements D with C extends B;
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:39: Context: Previous declaration of 'C'.
// class N8 = B with C implements D with C;
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:34: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N9 = B implements D with C extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:34: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N9 = B implements D with C extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:34: Error: Expected ';' after this.
// class N9 = B implements D with C extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:34: Error: 'extends' is already declared in this scope.
// class N9 = B implements D with C extends B;
//                                  ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:34: Context: Previous declaration of 'extends'.
// class N6 = B with C implements D extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:42: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N9 = B implements D with C extends B;
//                                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:42: Error: 'B' is already declared in this scope.
// class N9 = B implements D with C extends B;
//                                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:42: Context: Previous declaration of 'B'.
// class N6 = B with C implements D extends B;
//                                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:15: Error: Expected 'with' before this.
// class N10 = B implements D with C implements D;
//               ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:26: Error: Expected ';' after this.
// class N10 = B implements D with C implements D;
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N10 = B implements D with C implements D;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:28: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N10 = B implements D with C implements D;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:28: Error: Expected ';' after this.
// class N10 = B implements D with C implements D;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:28: Error: 'with' is already declared in this scope.
// class N10 = B implements D with C implements D;
//                            ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:27: Context: Previous declaration of 'with'.
// class N9 = B implements D with C extends B;
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:35: Error: Expected ';' after this.
// class N10 = B implements D with C implements D;
//                                   ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:35: Error: 'implements' is already declared in this scope.
// class N10 = B implements D with C implements D;
//                                   ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:34: Context: Previous declaration of 'implements'.
// class N7 = B with C implements D implements D;
//                                  ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:46: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N10 = B implements D with C implements D;
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:46: Error: 'D' is already declared in this scope.
// class N10 = B implements D with C implements D;
//                                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:45: Context: Previous declaration of 'D'.
// class N7 = B with C implements D implements D;
//                                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:15: Error: Expected 'with' before this.
// class N11 = B implements D with C with C;
//               ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:26: Error: Expected ';' after this.
// class N11 = B implements D with C with C;
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N11 = B implements D with C with C;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:28: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N11 = B implements D with C with C;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:28: Error: Expected ';' after this.
// class N11 = B implements D with C with C;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:28: Error: 'with' is already declared in this scope.
// class N11 = B implements D with C with C;
//                            ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:28: Context: Previous declaration of 'with'.
// class N10 = B implements D with C implements D;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:33: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N11 = B implements D with C with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:33: Error: Expected ';' after this.
// class N11 = B implements D with C with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:33: Error: 'C' is already declared in this scope.
// class N11 = B implements D with C with C;
//                                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:32: Context: Previous declaration of 'C'.
// class N9 = B implements D with C extends B;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:35: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N11 = B implements D with C with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:35: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N11 = B implements D with C with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:35: Error: Expected ';' after this.
// class N11 = B implements D with C with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:35: Error: 'with' is already declared in this scope.
// class N11 = B implements D with C with C;
//                                   ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:28: Context: Previous declaration of 'with'.
// class N11 = B implements D with C with C;
//                            ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N11 = B implements D with C with C;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:40: Error: 'C' is already declared in this scope.
// class N11 = B implements D with C with C;
//                                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:33: Context: Previous declaration of 'C'.
// class N11 = B implements D with C with C;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Error: Expected 'with' before this.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:13: Error: Expected ';' after this.
// class N12 = B extends B with C implements D;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Error: Expected ';' after this.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Error: 'extends' is already declared in this scope.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:34: Context: Previous declaration of 'extends'.
// class N9 = B implements D with C extends B;
//                                  ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N12 = B extends B with C implements D;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:23: Error: Expected ';' after this.
// class N12 = B extends B with C implements D;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:23: Error: 'B' is already declared in this scope.
// class N12 = B extends B with C implements D;
//                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:42: Context: Previous declaration of 'B'.
// class N9 = B implements D with C extends B;
//                                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:25: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N12 = B extends B with C implements D;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:25: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N12 = B extends B with C implements D;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:25: Error: Expected ';' after this.
// class N12 = B extends B with C implements D;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:25: Error: 'with' is already declared in this scope.
// class N12 = B extends B with C implements D;
//                         ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:35: Context: Previous declaration of 'with'.
// class N11 = B implements D with C with C;
//                                   ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:32: Error: Expected ';' after this.
// class N12 = B extends B with C implements D;
//                                ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:32: Error: 'implements' is already declared in this scope.
// class N12 = B extends B with C implements D;
//                                ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:35: Context: Previous declaration of 'implements'.
// class N10 = B implements D with C implements D;
//                                   ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:43: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N12 = B extends B with C implements D;
//                                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:43: Error: 'D' is already declared in this scope.
// class N12 = B extends B with C implements D;
//                                           ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:46: Context: Previous declaration of 'D'.
// class N10 = B implements D with C implements D;
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:20: Error: Expected ';' after this.
// class N13 = B with C with C implements D;
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:22: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N13 = B with C with C implements D;
//                      ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:22: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N13 = B with C with C implements D;
//                      ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:22: Error: Expected ';' after this.
// class N13 = B with C with C implements D;
//                      ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:22: Error: 'with' is already declared in this scope.
// class N13 = B with C with C implements D;
//                      ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:25: Context: Previous declaration of 'with'.
// class N12 = B extends B with C implements D;
//                         ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:29: Error: Expected ';' after this.
// class N13 = B with C with C implements D;
//                             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:29: Error: 'implements' is already declared in this scope.
// class N13 = B with C with C implements D;
//                             ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:32: Context: Previous declaration of 'implements'.
// class N12 = B extends B with C implements D;
//                                ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:40: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N13 = B with C with C implements D;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:40: Error: 'D' is already declared in this scope.
// class N13 = B with C with C implements D;
//                                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:43: Context: Previous declaration of 'D'.
// class N12 = B extends B with C implements D;
//                                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:33: Error: Expected ';' after this.
// class N14 = B with C implements D implements D;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:35: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N14 = B with C implements D implements D;
//                                   ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:35: Error: Expected ';' after this.
// class N14 = B with C implements D implements D;
//                                   ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:35: Error: 'implements' is already declared in this scope.
// class N14 = B with C implements D implements D;
//                                   ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:29: Context: Previous declaration of 'implements'.
// class N13 = B with C with C implements D;
//                             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:46: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N14 = B with C implements D implements D;
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:46: Error: 'D' is already declared in this scope.
// class N14 = B with C implements D implements D;
//                                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:40: Context: Previous declaration of 'D'.
// class N13 = B with C with C implements D;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:13: Error: Expected a type, but got 'with'.
// class N15 = with D extends B;
//             ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:18: Error: Expected ';' after this.
// class N15 = with D extends B;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:20: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N15 = with D extends B;
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:20: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N15 = with D extends B;
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:20: Error: Expected ';' after this.
// class N15 = with D extends B;
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:20: Error: 'extends' is already declared in this scope.
// class N15 = with D extends B;
//                    ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:15: Context: Previous declaration of 'extends'.
// class N12 = B extends B with C implements D;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N15 = with D extends B;
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:28: Error: 'B' is already declared in this scope.
// class N15 = with D extends B;
//                            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:23: Context: Previous declaration of 'B'.
// class N12 = B extends B with C implements D;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:13: Error: The built-in identifier 'implements' can't be used as a type.
// class N16 = implements D extends B;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:24: Error: Expected 'with' before this.
// class N16 = implements D extends B;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:24: Error: Expected ';' after this.
// class N16 = implements D extends B;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:26: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N16 = implements D extends B;
//                          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:26: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N16 = implements D extends B;
//                          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:26: Error: Expected ';' after this.
// class N16 = implements D extends B;
//                          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:26: Error: 'extends' is already declared in this scope.
// class N16 = implements D extends B;
//                          ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:20: Context: Previous declaration of 'extends'.
// class N15 = with D extends B;
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:34: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N16 = implements D extends B;
//                                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:34: Error: 'B' is already declared in this scope.
// class N16 = implements D extends B;
//                                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:28: Context: Previous declaration of 'B'.
// class N15 = with D extends B;
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:13: Error: The built-in identifier 'implements' can't be used as a type.
// class N17 = implements D with C;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:24: Error: Expected 'with' before this.
// class N17 = implements D with C;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:24: Error: Expected ';' after this.
// class N17 = implements D with C;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:26: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N17 = implements D with C;
//                          ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:26: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N17 = implements D with C;
//                          ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:26: Error: Expected ';' after this.
// class N17 = implements D with C;
//                          ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:26: Error: 'with' is already declared in this scope.
// class N17 = implements D with C;
//                          ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:22: Context: Previous declaration of 'with'.
// class N13 = B with C with C implements D;
//                      ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:31: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N17 = implements D with C;
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:31: Error: 'C' is already declared in this scope.
// class N17 = implements D with C;
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:40: Context: Previous declaration of 'C'.
// class N11 = B implements D with C with C;
//                                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:51:13: Error: Expected a type, but got ';'.
// class N18 = ;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:51:13: Error: Expected 'with' before this.
// class N18 = ;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:52:19: Error: Expected a type, but got ';'.
// class N19 = B with;
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:53:13: Error: Expected a type, but got 'with'.
// class N20 = with;
//             ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:53:17: Error: Expected a type, but got ';'.
// class N20 = with;
//                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:32: Error: Expected a type, but got ';'.
// class N21 = B with C implements;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:55:13: Error: Expected a type, but got 'with'.
// class N22 = with C implements;
//             ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:55:30: Error: Expected a type, but got ';'.
// class N22 = with C implements;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:56:13: Error: The built-in identifier 'implements' can't be used as a type.
// class N23 = implements;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:56:23: Error: Expected 'with' before this.
// class N23 = implements;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:15: Error: Expected 'with' before this.
// class N24 = B extends;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:13: Error: Expected ';' after this.
// class N24 = B extends;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:15: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N24 = B extends;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:15: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N24 = B extends;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:15: Error: 'extends' is already declared in this scope.
// class N24 = B extends;
//               ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:26: Context: Previous declaration of 'extends'.
// class N16 = implements D extends B;
//                          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:13: Error: Expected a type, but got 'with'.
// class N25 = with C with;
//             ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:18: Error: Expected ';' after this.
// class N25 = with C with;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:20: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// class N25 = with C with;
//                    ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:20: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// class N25 = with C with;
//                    ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:20: Error: 'with' is already declared in this scope.
// class N25 = with C with;
//                    ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:26: Context: Previous declaration of 'with'.
// class N17 = implements D with C;
//                          ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:13: Error: The built-in identifier 'implements' can't be used as a type.
// class N26 = implements D implements;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:24: Error: Expected 'with' before this.
// class N26 = implements D implements;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:36: Error: Expected a type, but got ';'.
// class N26 = implements D implements;
//                                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:8: Error: Unexpected tokens.
// enum E extends B with C implements D { element }
//        ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:62:9: Error: Unexpected tokens.
// enum E1 extends B implements D with C { element }
//         ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:62:32: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E1 extends B implements D with C { element }
//                                ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:63:22: Error: Unexpected tokens.
// enum E2 implements D extends B with C { element }
//                      ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:63:32: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E2 implements D extends B with C { element }
//                                ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:64:22: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E3 implements D with C extends B { element }
//                      ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:64:29: Error: Unexpected tokens.
// enum E3 implements D with C extends B { element }
//                             ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:29: Error: Unexpected tokens.
// enum E4 with C implements D extends B { element }
//                             ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:16: Error: Unexpected tokens.
// enum E5 with C extends B implements D { element }
//                ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:9: Error: Unexpected tokens.
// enum E6 extends B with C implements D extends B { element }
//         ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:39: Error: Unexpected tokens.
// enum E6 extends B with C implements D extends B { element }
//                                       ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:9: Error: Unexpected tokens.
// enum E7 extends B with C implements D implements D { element }
//         ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:39: Error: Each 'enum' definition can have at most one 'implements' clause.
// Try combining all of the 'implements' clauses into a single clause.
// enum E7 extends B with C implements D implements D { element }
//                                       ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:9: Error: Unexpected tokens.
// enum E8 extends B with C implements D with C { element }
//         ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:39: Error: Each 'enum' definition can have at most one 'with' clause.
// Try combining all of the 'with' clauses into a single clause.
// enum E8 extends B with C implements D with C { element }
//                                       ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:70:9: Error: Unexpected tokens.
// enum E9 extends B implements D with C extends B { element }
//         ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:70:32: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E9 extends B implements D with C extends B { element }
//                                ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:70:39: Error: Unexpected tokens.
// enum E9 extends B implements D with C extends B { element }
//                                       ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:71:10: Error: Unexpected tokens.
// enum E10 extends B implements D with C implements D { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:71:33: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E10 extends B implements D with C implements D { element }
//                                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:71:40: Error: Each 'enum' definition can have at most one 'implements' clause.
// Try combining all of the 'implements' clauses into a single clause.
// enum E10 extends B implements D with C implements D { element }
//                                        ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:72:10: Error: Unexpected tokens.
// enum E11 extends B implements D with C with C { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:72:33: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E11 extends B implements D with C with C { element }
//                                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:72:40: Error: Each 'enum' definition can have at most one 'with' clause.
// Try combining all of the 'with' clauses into a single clause.
// enum E11 extends B implements D with C with C { element }
//                                        ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Error: Expected a enum body, but got 'extends'.
// An enum definition must have a body with at least one constant name.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Error: 'extends' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:15: Context: Previous declaration of 'extends'.
// class N24 = B extends;
//               ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:18: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// enum E12 extends B extends B with C implements D { element }
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:18: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:18: Error: 'B' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:34: Context: Previous declaration of 'B'.
// class N16 = implements D extends B;
//                                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:20: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// enum E12 extends B extends B with C implements D { element }
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:20: Error: 'extends' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// enum E12 extends B extends B with C implements D { element }
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:20: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:20: Error: 'extends' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                    ^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:10: Context: Previous declaration of 'extends'.
// enum E12 extends B extends B with C implements D { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// enum E12 extends B extends B with C implements D { element }
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:28: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:28: Error: 'B' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:18: Context: Previous declaration of 'B'.
// enum E12 extends B extends B with C implements D { element }
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:30: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// enum E12 extends B extends B with C implements D { element }
//                              ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:30: Error: 'with' can't be used as an identifier because it's a keyword.
// Try renaming this to be an identifier that isn't a keyword.
// enum E12 extends B extends B with C implements D { element }
//                              ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:30: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                              ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:30: Error: 'with' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                              ^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:20: Context: Previous declaration of 'with'.
// class N25 = with C with;
//                    ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:37: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                                     ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:37: Error: 'implements' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                                     ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:35: Context: Previous declaration of 'implements'.
// class N14 = B with C implements D implements D;
//                                   ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:48: Error: A function declaration needs an explicit list of parameters.
// Try adding a parameter list to the function declaration.
// enum E12 extends B extends B with C implements D { element }
//                                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:48: Error: 'D' is already declared in this scope.
// enum E12 extends B extends B with C implements D { element }
//                                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:46: Context: Previous declaration of 'D'.
// class N14 = B with C implements D implements D;
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:10: Error: Unexpected tokens.
// enum E13 extends B with C with C implements D { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:27: Error: Each 'enum' definition can have at most one 'with' clause.
// Try combining all of the 'with' clauses into a single clause.
// enum E13 extends B with C with C implements D { element }
//                           ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:10: Error: Unexpected tokens.
// enum E14 extends B with C implements D implements D { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:40: Error: Each 'enum' definition can have at most one 'implements' clause.
// Try combining all of the 'implements' clauses into a single clause.
// enum E14 extends B with C implements D implements D { element }
//                                        ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:76:17: Error: Unexpected tokens.
// enum E15 with D extends B { element }
//                 ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:77:23: Error: Unexpected tokens.
// enum E16 implements D extends B { element }
//                       ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:78:23: Error: The 'with' clause must come before the 'implements' clause.
// Try moving the 'with' clause before the 'implements' clause.
// enum E17 implements D with C { element }
//                       ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:79:10: Error: Unexpected token 'extends'.
// enum E18 extends { element }
//          ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:80:10: Error: Unexpected tokens.
// enum E19 extends B with { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:80:25: Error: Expected a type, but got '{'.
// enum E19 extends B with { element }
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:81:15: Error: Expected a type, but got '{'.
// enum E20 with { element }
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:82:10: Error: Unexpected tokens.
// enum E21 extends B with C implements { element }
//          ^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:82:38: Error: Expected a type, but got '{'.
// enum E21 extends B with C implements { element }
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:83:28: Error: Expected a type, but got '{'.
// enum E22 with C implements { element }
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:84:21: Error: Expected a type, but got '{'.
// enum E23 implements { element }
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:85:10: Error: Unexpected tokens.
// enum E24 extends B extends { element }
//          ^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:86:17: Error: Each 'enum' definition can have at most one 'with' clause.
// Try combining all of the 'with' clauses into a single clause.
// enum E25 with C with { element }
//                 ^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:87:23: Error: Each 'enum' definition can have at most one 'implements' clause.
// Try combining all of the 'implements' clauses into a single clause.
// enum E26 implements D implements { element }
//                       ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:89:7: Error: 'B' is already declared in this scope.
// class B {}
//       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:28: Context: Previous declaration of 'B'.
// enum E12 extends B extends B with C implements D { element }
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:90:7: Error: 'C' is already declared in this scope.
// class C {}
//       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:31: Context: Previous declaration of 'C'.
// class N17 = implements D with C;
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:91:7: Error: 'D' is already declared in this scope.
// class D {}
//       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:48: Context: Previous declaration of 'D'.
// enum E12 extends B extends B with C implements D { element }
//                                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:17: Error: 'B' isn't a type.
// class A extends B with C implements D {}
//                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:17: Context: This isn't a type.
// class A extends B with C implements D {}
//                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:24: Error: 'C' isn't a type.
// class A extends B with C implements D {}
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:24: Context: This isn't a type.
// class A extends B with C implements D {}
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:37: Error: 'D' isn't a type.
// class A extends B with C implements D {}
//                                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:37: Context: This isn't a type.
// class A extends B with C implements D {}
//                                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:18: Error: 'B' isn't a type.
// class A1 extends B implements D with C {}
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:18: Context: This isn't a type.
// class A1 extends B implements D with C {}
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:31: Error: 'D' isn't a type.
// class A1 extends B implements D with C {}
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:31: Context: This isn't a type.
// class A1 extends B implements D with C {}
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:38: Error: 'C' isn't a type.
// class A1 extends B implements D with C {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:6:38: Context: This isn't a type.
// class A1 extends B implements D with C {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:21: Error: 'D' isn't a type.
// class A2 implements D extends B with C {}
//                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:21: Context: This isn't a type.
// class A2 implements D extends B with C {}
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:31: Error: 'B' isn't a type.
// class A2 implements D extends B with C {}
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:31: Context: This isn't a type.
// class A2 implements D extends B with C {}
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:38: Error: 'C' isn't a type.
// class A2 implements D extends B with C {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:7:38: Context: This isn't a type.
// class A2 implements D extends B with C {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:21: Error: 'D' isn't a type.
// class A3 implements D with C extends B {}
//                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:21: Context: This isn't a type.
// class A3 implements D with C extends B {}
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:28: Error: 'C' isn't a type.
// class A3 implements D with C extends B {}
//                            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:28: Context: This isn't a type.
// class A3 implements D with C extends B {}
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:38: Error: 'B' isn't a type.
// class A3 implements D with C extends B {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:8:38: Context: This isn't a type.
// class A3 implements D with C extends B {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:15: Error: 'C' isn't a type.
// class A4 with C implements D extends B {}
//               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:15: Context: This isn't a type.
// class A4 with C implements D extends B {}
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:28: Error: 'D' isn't a type.
// class A4 with C implements D extends B {}
//                            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:28: Context: This isn't a type.
// class A4 with C implements D extends B {}
//                            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:38: Error: 'B' isn't a type.
// class A4 with C implements D extends B {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:38: Context: This isn't a type.
// class A4 with C implements D extends B {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:15: Error: 'C' isn't a type.
// class A5 with C extends B implements D {}
//               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:15: Context: This isn't a type.
// class A5 with C extends B implements D {}
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:25: Error: 'B' isn't a type.
// class A5 with C extends B implements D {}
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:25: Context: This isn't a type.
// class A5 with C extends B implements D {}
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:38: Error: 'D' isn't a type.
// class A5 with C extends B implements D {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:38: Context: This isn't a type.
// class A5 with C extends B implements D {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:18: Error: 'B' isn't a type.
// class A6 extends B with C implements D extends B {}
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:18: Context: This isn't a type.
// class A6 extends B with C implements D extends B {}
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:25: Error: 'C' isn't a type.
// class A6 extends B with C implements D extends B {}
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:25: Context: This isn't a type.
// class A6 extends B with C implements D extends B {}
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:38: Error: 'D' isn't a type.
// class A6 extends B with C implements D extends B {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:38: Context: This isn't a type.
// class A6 extends B with C implements D extends B {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:48: Error: 'B' isn't a type.
// class A6 extends B with C implements D extends B {}
//                                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:48: Context: This isn't a type.
// class A6 extends B with C implements D extends B {}
//                                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:18: Error: 'B' isn't a type.
// class A7 extends B with C implements D implements D {}
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:18: Context: This isn't a type.
// class A7 extends B with C implements D implements D {}
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:25: Error: 'C' isn't a type.
// class A7 extends B with C implements D implements D {}
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:25: Context: This isn't a type.
// class A7 extends B with C implements D implements D {}
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:38: Error: 'D' isn't a type.
// class A7 extends B with C implements D implements D {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:38: Context: This isn't a type.
// class A7 extends B with C implements D implements D {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:51: Error: 'D' isn't a type.
// class A7 extends B with C implements D implements D {}
//                                                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:51: Context: This isn't a type.
// class A7 extends B with C implements D implements D {}
//                                                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:18: Error: 'B' isn't a type.
// class A8 extends B with C implements D with C {}
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:18: Context: This isn't a type.
// class A8 extends B with C implements D with C {}
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:25: Error: 'C' isn't a type.
// class A8 extends B with C implements D with C {}
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:25: Context: This isn't a type.
// class A8 extends B with C implements D with C {}
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:38: Error: 'D' isn't a type.
// class A8 extends B with C implements D with C {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:38: Context: This isn't a type.
// class A8 extends B with C implements D with C {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:45: Error: 'C' isn't a type.
// class A8 extends B with C implements D with C {}
//                                             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:45: Context: This isn't a type.
// class A8 extends B with C implements D with C {}
//                                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:18: Error: 'B' isn't a type.
// class A9 extends B implements D with C extends B {}
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:18: Context: This isn't a type.
// class A9 extends B implements D with C extends B {}
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:31: Error: 'D' isn't a type.
// class A9 extends B implements D with C extends B {}
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:31: Context: This isn't a type.
// class A9 extends B implements D with C extends B {}
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:38: Error: 'C' isn't a type.
// class A9 extends B implements D with C extends B {}
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:38: Context: This isn't a type.
// class A9 extends B implements D with C extends B {}
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:48: Error: 'B' isn't a type.
// class A9 extends B implements D with C extends B {}
//                                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:14:48: Context: This isn't a type.
// class A9 extends B implements D with C extends B {}
//                                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:19: Error: 'B' isn't a type.
// class A10 extends B implements D with C implements D {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:19: Context: This isn't a type.
// class A10 extends B implements D with C implements D {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:32: Error: 'D' isn't a type.
// class A10 extends B implements D with C implements D {}
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:32: Context: This isn't a type.
// class A10 extends B implements D with C implements D {}
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:39: Error: 'C' isn't a type.
// class A10 extends B implements D with C implements D {}
//                                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:39: Context: This isn't a type.
// class A10 extends B implements D with C implements D {}
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:52: Error: 'D' isn't a type.
// class A10 extends B implements D with C implements D {}
//                                                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:15:52: Context: This isn't a type.
// class A10 extends B implements D with C implements D {}
//                                                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:19: Error: 'B' isn't a type.
// class A11 extends B implements D with C with C {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:19: Context: This isn't a type.
// class A11 extends B implements D with C with C {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:32: Error: 'D' isn't a type.
// class A11 extends B implements D with C with C {}
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:32: Context: This isn't a type.
// class A11 extends B implements D with C with C {}
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:39: Error: 'C' isn't a type.
// class A11 extends B implements D with C with C {}
//                                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:39: Context: This isn't a type.
// class A11 extends B implements D with C with C {}
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:46: Error: 'C' isn't a type.
// class A11 extends B implements D with C with C {}
//                                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:16:46: Context: This isn't a type.
// class A11 extends B implements D with C with C {}
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:19: Error: 'B' isn't a type.
// class A12 extends B extends B with C implements D {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:19: Context: This isn't a type.
// class A12 extends B extends B with C implements D {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:29: Error: 'B' isn't a type.
// class A12 extends B extends B with C implements D {}
//                             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:29: Context: This isn't a type.
// class A12 extends B extends B with C implements D {}
//                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:36: Error: 'C' isn't a type.
// class A12 extends B extends B with C implements D {}
//                                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:36: Context: This isn't a type.
// class A12 extends B extends B with C implements D {}
//                                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:49: Error: 'D' isn't a type.
// class A12 extends B extends B with C implements D {}
//                                                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:17:49: Context: This isn't a type.
// class A12 extends B extends B with C implements D {}
//                                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:19: Error: 'B' isn't a type.
// class A13 extends B with C with C implements D {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:19: Context: This isn't a type.
// class A13 extends B with C with C implements D {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:26: Error: 'C' isn't a type.
// class A13 extends B with C with C implements D {}
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:26: Context: This isn't a type.
// class A13 extends B with C with C implements D {}
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:33: Error: 'C' isn't a type.
// class A13 extends B with C with C implements D {}
//                                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:33: Context: This isn't a type.
// class A13 extends B with C with C implements D {}
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:46: Error: 'D' isn't a type.
// class A13 extends B with C with C implements D {}
//                                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:46: Context: This isn't a type.
// class A13 extends B with C with C implements D {}
//                                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:19: Error: 'B' isn't a type.
// class A14 extends B with C implements D implements D {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:19: Context: This isn't a type.
// class A14 extends B with C implements D implements D {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:26: Error: 'C' isn't a type.
// class A14 extends B with C implements D implements D {}
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:26: Context: This isn't a type.
// class A14 extends B with C implements D implements D {}
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:39: Error: 'D' isn't a type.
// class A14 extends B with C implements D implements D {}
//                                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:39: Context: This isn't a type.
// class A14 extends B with C implements D implements D {}
//                                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:52: Error: 'D' isn't a type.
// class A14 extends B with C implements D implements D {}
//                                                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:52: Context: This isn't a type.
// class A14 extends B with C implements D implements D {}
//                                                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:16: Error: 'D' isn't a type.
// class A15 with D extends B {}
//                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:16: Context: This isn't a type.
// class A15 with D extends B {}
//                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:26: Error: 'B' isn't a type.
// class A15 with D extends B {}
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:26: Context: This isn't a type.
// class A15 with D extends B {}
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:21:22: Error: 'D' isn't a type.
// class A16 implements D extends B {}
//                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:21:22: Context: This isn't a type.
// class A16 implements D extends B {}
//                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:21:32: Error: 'B' isn't a type.
// class A16 implements D extends B {}
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:21:32: Context: This isn't a type.
// class A16 implements D extends B {}
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:22:22: Error: 'D' isn't a type.
// class A17 implements D with C {}
//                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:22:22: Context: This isn't a type.
// class A17 implements D with C {}
//                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:22:29: Error: 'C' isn't a type.
// class A17 implements D with C {}
//                             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:22:29: Context: This isn't a type.
// class A17 implements D with C {}
//                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:24:19: Error: 'B' isn't a type.
// class A19 extends B with {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:24:19: Context: This isn't a type.
// class A19 extends B with {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:19: Error: 'B' isn't a type.
// class A21 extends B with C implements {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:19: Context: This isn't a type.
// class A21 extends B with C implements {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:26: Error: 'C' isn't a type.
// class A21 extends B with C implements {}
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:26: Context: This isn't a type.
// class A21 extends B with C implements {}
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:27:16: Error: 'C' isn't a type.
// class A22 with C implements {}
//                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:27:16: Context: This isn't a type.
// class A22 with C implements {}
//                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:29:19: Error: 'B' isn't a type.
// class A24 extends B extends {}
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:29:19: Context: This isn't a type.
// class A24 extends B extends {}
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:30:16: Error: 'C' isn't a type.
// class A25 with C with {}
//                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:30:16: Context: This isn't a type.
// class A25 with C with {}
//                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:31:22: Error: 'D' isn't a type.
// class A26 implements D implements {}
//                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:31:22: Context: This isn't a type.
// class A26 implements D implements {}
//                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:11: Error: 'B' isn't a type.
// class N = B with C implements D;
//           ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:11: Context: This isn't a type.
// class N = B with C implements D;
//           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:18: Error: 'C' isn't a type.
// class N = B with C implements D;
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:18: Context: This isn't a type.
// class N = B with C implements D;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:31: Error: 'D' isn't a type.
// class N = B with C implements D;
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:31: Context: This isn't a type.
// class N = B with C implements D;
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:12: Error: 'B' isn't a type.
// class N1 = B implements D with C;
//            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:12: Context: This isn't a type.
// class N1 = B implements D with C;
//            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:25: Error: 'D' isn't a type.
// class N1 = B implements D with C;
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:34:25: Context: This isn't a type.
// class N1 = B implements D with C;
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:12: Error: 'implements' isn't a type.
// class N2 = implements D extends B with C;
//            ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:12: Context: This isn't a type.
// class N2 = implements D extends B with C;
//            ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:23: Error: 'D' isn't a type.
// class N2 = implements D extends B with C;
//                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:23: Context: This isn't a type.
// class N2 = implements D extends B with C;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:12: Error: 'implements' isn't a type.
// class N3 = implements D with C extends B;
//            ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:12: Context: This isn't a type.
// class N3 = implements D with C extends B;
//            ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:23: Error: 'D' isn't a type.
// class N3 = implements D with C extends B;
//                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:23: Context: This isn't a type.
// class N3 = implements D with C extends B;
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:17: Error: 'C' isn't a type.
// class N4 = with C implements D extends B;
//                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:17: Context: This isn't a type.
// class N4 = with C implements D extends B;
//                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:30: Error: 'D' isn't a type.
// class N4 = with C implements D extends B;
//                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:37:30: Context: This isn't a type.
// class N4 = with C implements D extends B;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:17: Error: 'C' isn't a type.
// class N5 = with C extends B implements D;
//                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:17: Context: This isn't a type.
// class N5 = with C extends B implements D;
//                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:27: Error: 'B' isn't a type.
// class N5 = with C extends B implements D;
//                           ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:27: Context: This isn't a type.
// class N5 = with C extends B implements D;
//                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:12: Error: 'B' isn't a type.
// class N6 = B with C implements D extends B;
//            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:12: Context: This isn't a type.
// class N6 = B with C implements D extends B;
//            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:19: Error: 'C' isn't a type.
// class N6 = B with C implements D extends B;
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:19: Context: This isn't a type.
// class N6 = B with C implements D extends B;
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:32: Error: 'D' isn't a type.
// class N6 = B with C implements D extends B;
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:32: Context: This isn't a type.
// class N6 = B with C implements D extends B;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:12: Error: 'B' isn't a type.
// class N7 = B with C implements D implements D;
//            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:12: Context: This isn't a type.
// class N7 = B with C implements D implements D;
//            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:19: Error: 'C' isn't a type.
// class N7 = B with C implements D implements D;
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:19: Context: This isn't a type.
// class N7 = B with C implements D implements D;
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:32: Error: 'D' isn't a type.
// class N7 = B with C implements D implements D;
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:32: Context: This isn't a type.
// class N7 = B with C implements D implements D;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:12: Error: 'B' isn't a type.
// class N8 = B with C implements D with C;
//            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:12: Context: This isn't a type.
// class N8 = B with C implements D with C;
//            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:19: Error: 'C' isn't a type.
// class N8 = B with C implements D with C;
//                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:19: Context: This isn't a type.
// class N8 = B with C implements D with C;
//                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:32: Error: 'D' isn't a type.
// class N8 = B with C implements D with C;
//                                ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:32: Context: This isn't a type.
// class N8 = B with C implements D with C;
//                                ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:12: Error: 'B' isn't a type.
// class N9 = B implements D with C extends B;
//            ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:12: Context: This isn't a type.
// class N9 = B implements D with C extends B;
//            ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:25: Error: 'D' isn't a type.
// class N9 = B implements D with C extends B;
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:42:25: Context: This isn't a type.
// class N9 = B implements D with C extends B;
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:13: Error: 'B' isn't a type.
// class N10 = B implements D with C implements D;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:13: Context: This isn't a type.
// class N10 = B implements D with C implements D;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:26: Error: 'D' isn't a type.
// class N10 = B implements D with C implements D;
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:26: Context: This isn't a type.
// class N10 = B implements D with C implements D;
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:33: Error: 'C' isn't a type.
// class N10 = B implements D with C implements D;
//                                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:33: Context: This isn't a type.
// class N10 = B implements D with C implements D;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:13: Error: 'B' isn't a type.
// class N11 = B implements D with C with C;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:13: Context: This isn't a type.
// class N11 = B implements D with C with C;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:26: Error: 'D' isn't a type.
// class N11 = B implements D with C with C;
//                          ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:44:26: Context: This isn't a type.
// class N11 = B implements D with C with C;
//                          ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:13: Error: 'B' isn't a type.
// class N12 = B extends B with C implements D;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:13: Context: This isn't a type.
// class N12 = B extends B with C implements D;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:30: Error: 'C' isn't a type.
// class N12 = B extends B with C implements D;
//                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:30: Context: This isn't a type.
// class N12 = B extends B with C implements D;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:13: Error: 'B' isn't a type.
// class N13 = B with C with C implements D;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:13: Context: This isn't a type.
// class N13 = B with C with C implements D;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:20: Error: 'C' isn't a type.
// class N13 = B with C with C implements D;
//                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:20: Context: This isn't a type.
// class N13 = B with C with C implements D;
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:27: Error: 'C' isn't a type.
// class N13 = B with C with C implements D;
//                           ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:27: Context: This isn't a type.
// class N13 = B with C with C implements D;
//                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:13: Error: 'B' isn't a type.
// class N14 = B with C implements D implements D;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:13: Context: This isn't a type.
// class N14 = B with C implements D implements D;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:20: Error: 'C' isn't a type.
// class N14 = B with C implements D implements D;
//                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:20: Context: This isn't a type.
// class N14 = B with C implements D implements D;
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:33: Error: 'D' isn't a type.
// class N14 = B with C implements D implements D;
//                                 ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:33: Context: This isn't a type.
// class N14 = B with C implements D implements D;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:18: Error: 'D' isn't a type.
// class N15 = with D extends B;
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:48:18: Context: This isn't a type.
// class N15 = with D extends B;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:13: Error: 'implements' isn't a type.
// class N16 = implements D extends B;
//             ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:13: Context: This isn't a type.
// class N16 = implements D extends B;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:24: Error: 'D' isn't a type.
// class N16 = implements D extends B;
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:24: Context: This isn't a type.
// class N16 = implements D extends B;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:13: Error: 'implements' isn't a type.
// class N17 = implements D with C;
//             ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:13: Context: This isn't a type.
// class N17 = implements D with C;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:24: Error: 'D' isn't a type.
// class N17 = implements D with C;
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:24: Context: This isn't a type.
// class N17 = implements D with C;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:52:13: Error: 'B' isn't a type.
// class N19 = B with;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:52:13: Context: This isn't a type.
// class N19 = B with;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:13: Error: 'B' isn't a type.
// class N21 = B with C implements;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:13: Context: This isn't a type.
// class N21 = B with C implements;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:20: Error: 'C' isn't a type.
// class N21 = B with C implements;
//                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:20: Context: This isn't a type.
// class N21 = B with C implements;
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:55:18: Error: 'C' isn't a type.
// class N22 = with C implements;
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:55:18: Context: This isn't a type.
// class N22 = with C implements;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:56:13: Error: 'implements' isn't a type.
// class N23 = implements;
//             ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:56:13: Context: This isn't a type.
// class N23 = implements;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:13: Error: 'B' isn't a type.
// class N24 = B extends;
//             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:57:13: Context: This isn't a type.
// class N24 = B extends;
//             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:18: Error: 'C' isn't a type.
// class N25 = with C with;
//                  ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:58:18: Context: This isn't a type.
// class N25 = with C with;
//                  ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:13: Error: 'implements' isn't a type.
// class N26 = implements D implements;
//             ^^^^^^^^^^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:13: Context: This isn't a type.
// class N26 = implements D implements;
//             ^^^^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:24: Error: 'D' isn't a type.
// class N26 = implements D implements;
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:24: Context: This isn't a type.
// class N26 = implements D implements;
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:23: Error: 'C' isn't a type.
// enum E extends B with C implements D { element }
//                       ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:23: Context: This isn't a type.
// enum E extends B with C implements D { element }
//                       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:36: Error: 'D' isn't a type.
// enum E extends B with C implements D { element }
//                                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:36: Context: This isn't a type.
// enum E extends B with C implements D { element }
//                                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:62:30: Error: 'D' isn't a type.
// enum E1 extends B implements D with C { element }
//                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:62:30: Context: This isn't a type.
// enum E1 extends B implements D with C { element }
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:63:20: Error: 'D' isn't a type.
// enum E2 implements D extends B with C { element }
//                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:63:20: Context: This isn't a type.
// enum E2 implements D extends B with C { element }
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:64:20: Error: 'D' isn't a type.
// enum E3 implements D with C extends B { element }
//                    ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:64:20: Context: This isn't a type.
// enum E3 implements D with C extends B { element }
//                    ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:14: Error: 'C' isn't a type.
// enum E4 with C implements D extends B { element }
//              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:14: Context: This isn't a type.
// enum E4 with C implements D extends B { element }
//              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:27: Error: 'D' isn't a type.
// enum E4 with C implements D extends B { element }
//                           ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:27: Context: This isn't a type.
// enum E4 with C implements D extends B { element }
//                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:14: Error: 'C' isn't a type.
// enum E5 with C extends B implements D { element }
//              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:14: Context: This isn't a type.
// enum E5 with C extends B implements D { element }
//              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:37: Error: 'D' isn't a type.
// enum E5 with C extends B implements D { element }
//                                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:37: Context: This isn't a type.
// enum E5 with C extends B implements D { element }
//                                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:24: Error: 'C' isn't a type.
// enum E6 extends B with C implements D extends B { element }
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:24: Context: This isn't a type.
// enum E6 extends B with C implements D extends B { element }
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:37: Error: 'D' isn't a type.
// enum E6 extends B with C implements D extends B { element }
//                                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:37: Context: This isn't a type.
// enum E6 extends B with C implements D extends B { element }
//                                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:24: Error: 'C' isn't a type.
// enum E7 extends B with C implements D implements D { element }
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:24: Context: This isn't a type.
// enum E7 extends B with C implements D implements D { element }
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:37: Error: 'D' isn't a type.
// enum E7 extends B with C implements D implements D { element }
//                                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:37: Context: This isn't a type.
// enum E7 extends B with C implements D implements D { element }
//                                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:24: Error: 'C' isn't a type.
// enum E8 extends B with C implements D with C { element }
//                        ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:24: Context: This isn't a type.
// enum E8 extends B with C implements D with C { element }
//                        ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:37: Error: 'D' isn't a type.
// enum E8 extends B with C implements D with C { element }
//                                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:37: Context: This isn't a type.
// enum E8 extends B with C implements D with C { element }
//                                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:70:30: Error: 'D' isn't a type.
// enum E9 extends B implements D with C extends B { element }
//                              ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:70:30: Context: This isn't a type.
// enum E9 extends B implements D with C extends B { element }
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:71:31: Error: 'D' isn't a type.
// enum E10 extends B implements D with C implements D { element }
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:71:31: Context: This isn't a type.
// enum E10 extends B implements D with C implements D { element }
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:72:31: Error: 'D' isn't a type.
// enum E11 extends B implements D with C with C { element }
//                               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:72:31: Context: This isn't a type.
// enum E11 extends B implements D with C with C { element }
//                               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:35: Error: 'C' isn't a type.
// enum E12 extends B extends B with C implements D { element }
//                                   ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:35: Context: This isn't a type.
// enum E12 extends B extends B with C implements D { element }
//                                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:25: Error: 'C' isn't a type.
// enum E13 extends B with C with C implements D { element }
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:25: Context: This isn't a type.
// enum E13 extends B with C with C implements D { element }
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:45: Error: 'D' isn't a type.
// enum E13 extends B with C with C implements D { element }
//                                             ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:45: Context: This isn't a type.
// enum E13 extends B with C with C implements D { element }
//                                             ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:25: Error: 'C' isn't a type.
// enum E14 extends B with C implements D implements D { element }
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:25: Context: This isn't a type.
// enum E14 extends B with C implements D implements D { element }
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:38: Error: 'D' isn't a type.
// enum E14 extends B with C implements D implements D { element }
//                                      ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:38: Context: This isn't a type.
// enum E14 extends B with C implements D implements D { element }
//                                      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:76:15: Error: 'D' isn't a type.
// enum E15 with D extends B { element }
//               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:76:15: Context: This isn't a type.
// enum E15 with D extends B { element }
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:77:21: Error: 'D' isn't a type.
// enum E16 implements D extends B { element }
//                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:77:21: Context: This isn't a type.
// enum E16 implements D extends B { element }
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:78:21: Error: 'D' isn't a type.
// enum E17 implements D with C { element }
//                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:78:21: Context: This isn't a type.
// enum E17 implements D with C { element }
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:82:25: Error: 'C' isn't a type.
// enum E21 extends B with C implements { element }
//                         ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:82:25: Context: This isn't a type.
// enum E21 extends B with C implements { element }
//                         ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:83:15: Error: 'C' isn't a type.
// enum E22 with C implements { element }
//               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:83:15: Context: This isn't a type.
// enum E22 with C implements { element }
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:86:15: Error: 'C' isn't a type.
// enum E25 with C with { element }
//               ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:86:15: Context: This isn't a type.
// enum E25 with C with { element }
//               ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:87:21: Error: 'D' isn't a type.
// enum E26 implements D implements { element }
//                     ^
// pkg/front_end/testcases/general/error_recovery/class_header.dart:87:21: Context: This isn't a type.
// enum E26 implements D implements { element }
//                     ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:5:7: Error: The type 'C' can't be mixed in.
// class A extends B with C implements D {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:9:7: Error: The type 'C' can't be mixed in.
// class A4 with C implements D extends B {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:10:7: Error: The type 'C' can't be mixed in.
// class A5 with C extends B implements D {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:11:7: Error: The type 'C' can't be mixed in.
// class A6 extends B with C implements D extends B {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:12:7: Error: The type 'C' can't be mixed in.
// class A7 extends B with C implements D implements D {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:13:7: Error: The type 'C' can't be mixed in.
// class A8 extends B with C implements D with C {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:18:7: Error: The type 'C' can't be mixed in.
// class A13 extends B with C with C implements D {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:19:7: Error: The type 'C' can't be mixed in.
// class A14 extends B with C implements D implements D {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:20:7: Error: The type 'D' can't be mixed in.
// class A15 with D extends B {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:26:7: Error: The type 'C' can't be mixed in.
// class A21 extends B with C implements {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:27:7: Error: The type 'C' can't be mixed in.
// class A22 with C implements {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:30:7: Error: The type 'C' can't be mixed in.
// class A25 with C with {}
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:33:7: Error: The type 'C' can't be mixed in.
// class N = B with C implements D;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:35:7: Error: The type 'D' can't be mixed in.
// class N2 = implements D extends B with C;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:36:7: Error: The type 'D' can't be mixed in.
// class N3 = implements D with C extends B;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:39:7: Error: The type 'C' can't be mixed in.
// class N6 = B with C implements D extends B;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:40:7: Error: The type 'C' can't be mixed in.
// class N7 = B with C implements D implements D;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:41:7: Error: The type 'C' can't be mixed in.
// class N8 = B with C implements D with C;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:7: Error: The type 'C' can't be mixed in.
// class N13 = B with C with C implements D;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:47:7: Error: The type 'C' can't be mixed in.
// class N14 = B with C implements D implements D;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:49:7: Error: The type 'D' can't be mixed in.
// class N16 = implements D extends B;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:50:7: Error: The type 'D' can't be mixed in.
// class N17 = implements D with C;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:54:7: Error: The type 'C' can't be mixed in.
// class N21 = B with C implements;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:59:7: Error: The type 'D' can't be mixed in.
// class N26 = implements D implements;
//       ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:61:6: Error: The type 'C' can't be mixed in.
// enum E extends B with C implements D { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:65:6: Error: The type 'C' can't be mixed in.
// enum E4 with C implements D extends B { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:66:6: Error: The type 'C' can't be mixed in.
// enum E5 with C extends B implements D { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:67:6: Error: The type 'C' can't be mixed in.
// enum E6 extends B with C implements D extends B { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:68:6: Error: The type 'C' can't be mixed in.
// enum E7 extends B with C implements D implements D { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:69:6: Error: The type 'C' can't be mixed in.
// enum E8 extends B with C implements D with C { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:74:6: Error: The type 'C' can't be mixed in.
// enum E13 extends B with C with C implements D { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:75:6: Error: The type 'C' can't be mixed in.
// enum E14 extends B with C implements D implements D { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:76:6: Error: The type 'D' can't be mixed in.
// enum E15 with D extends B { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:82:6: Error: The type 'C' can't be mixed in.
// enum E21 extends B with C implements { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:83:6: Error: The type 'C' can't be mixed in.
// enum E22 with C implements { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:86:6: Error: The type 'C' can't be mixed in.
// enum E25 with C with { element }
//      ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:38:27: Error: Can't use 'B' because it is declared more than once.
// class N5 = with C extends B implements D;
//                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:43:33: Error: Can't use 'C' because it is declared more than once.
// class N10 = B implements D with C implements D;
//                                 ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:45:30: Error: Can't use 'C' because it is declared more than once.
// class N12 = B extends B with C implements D;
//                              ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:46:27: Error: Can't use 'C' because it is declared more than once.
// class N13 = B with C with C implements D;
//                           ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:35: Error: Can't use 'C' because it is declared more than once.
// enum E12 extends B extends B with C implements D { element }
//                                   ^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:52: Error: Expected ';' after this.
// enum E12 extends B extends B with C implements D { element }
//                                                    ^^^^^^^
//
// pkg/front_end/testcases/general/error_recovery/class_header.dart:73:52: Error: Undefined name 'element'.
// enum E12 extends B extends B with C implements D { element }
//                                                    ^^^^^^^
//
import self as self;
import "dart:core" as core;

abstract class _A&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A&B&C
    : super core::Object::•()
    ;
}
class A extends self::_A&B&C {
  synthetic constructor •() → self::A
    : super self::_A&B&C::•()
    ;
}
class A1 extends core::Object {
  synthetic constructor •() → self::A1
    : super core::Object::•()
    ;
}
class A2 extends core::Object {
  synthetic constructor •() → self::A2
    : super core::Object::•()
    ;
}
class A3 extends core::Object {
  synthetic constructor •() → self::A3
    : super core::Object::•()
    ;
}
abstract class _A4&Object&C extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A4&Object&C
    : super core::Object::•()
    ;
}
class A4 extends self::_A4&Object&C {
  synthetic constructor •() → self::A4
    : super self::_A4&Object&C::•()
    ;
}
abstract class _A5&Object&C extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A5&Object&C
    : super core::Object::•()
    ;
}
class A5 extends self::_A5&Object&C {
  synthetic constructor •() → self::A5
    : super self::_A5&Object&C::•()
    ;
}
abstract class _A6&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A6&B&C
    : super core::Object::•()
    ;
}
class A6 extends self::_A6&B&C {
  synthetic constructor •() → self::A6
    : super self::_A6&B&C::•()
    ;
}
abstract class _A7&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A7&B&C
    : super core::Object::•()
    ;
}
class A7 extends self::_A7&B&C {
  synthetic constructor •() → self::A7
    : super self::_A7&B&C::•()
    ;
}
abstract class _A8&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A8&B&C
    : super core::Object::•()
    ;
}
class A8 extends self::_A8&B&C {
  synthetic constructor •() → self::A8
    : super self::_A8&B&C::•()
    ;
}
class A9 extends core::Object {
  synthetic constructor •() → self::A9
    : super core::Object::•()
    ;
}
class A10 extends core::Object {
  synthetic constructor •() → self::A10
    : super core::Object::•()
    ;
}
class A11 extends core::Object {
  synthetic constructor •() → self::A11
    : super core::Object::•()
    ;
}
class A12 extends core::Object {
  synthetic constructor •() → self::A12
    : super core::Object::•()
    ;
}
abstract class _A13&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A13&B&C
    : super core::Object::•()
    ;
}
class A13 extends self::_A13&B&C {
  synthetic constructor •() → self::A13
    : super self::_A13&B&C::•()
    ;
}
abstract class _A14&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A14&B&C
    : super core::Object::•()
    ;
}
class A14 extends self::_A14&B&C {
  synthetic constructor •() → self::A14
    : super self::_A14&B&C::•()
    ;
}
abstract class _A15&Object&D extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A15&Object&D
    : super core::Object::•()
    ;
}
class A15 extends self::_A15&Object&D {
  synthetic constructor •() → self::A15
    : super self::_A15&Object&D::•()
    ;
}
class A16 extends core::Object {
  synthetic constructor •() → self::A16
    : super core::Object::•()
    ;
}
class A17 extends core::Object {
  synthetic constructor •() → self::A17
    : super core::Object::•()
    ;
}
class A18 extends core::Object {
  synthetic constructor •() → self::A18
    : super core::Object::•()
    ;
}
class A19 extends core::Object {
  synthetic constructor •() → self::A19
    : super core::Object::•()
    ;
}
class A20 extends core::Object {
  synthetic constructor •() → self::A20
    : super core::Object::•()
    ;
}
abstract class _A21&B&C extends core::Object /*isAnonymousMixin*/  {
  synthetic constructor •() → self::_A21&B&C
    : super core::Object::•()
    ;
}
class A21 extends self::_A21&B&C {
  synthetic constructor •() → self::A21
    : super self::_A21&B&C::•()
    ;
}
abstract class _A22&Object&C extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A22&Object&C
    : super core::Object::•()
    ;
}
class A22 extends self::_A22&Object&C {
  synthetic constructor •() → self::A22
    : super self::_A22&Object&C::•()
    ;
}
class A23 extends core::Object {
  synthetic constructor •() → self::A23
    : super core::Object::•()
    ;
}
class A24 extends core::Object {
  synthetic constructor •() → self::A24
    : super core::Object::•()
    ;
}
abstract class _A25&Object&C extends core::Object /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_A25&Object&C
    : super core::Object::•()
    ;
}
class A25 extends self::_A25&Object&C {
  synthetic constructor •() → self::A25
    : super self::_A25&Object&C::•()
    ;
}
class A26 extends core::Object {
  synthetic constructor •() → self::A26
    : super core::Object::•()
    ;
}
class N extends core::Object {
  synthetic constructor •() → self::N
    : super core::Object::•()
    ;
}
class C#8 extends core::Object {
  synthetic constructor •() → self::C#8
    : super core::Object::•()
    ;
}
class N2 extends core::Object {
  synthetic constructor •() → self::N2
    : super core::Object::•()
    ;
}
class B#10 extends core::Object {
  synthetic constructor •() → self::B#10
    : super core::Object::•()
    ;
}
class N3 extends core::Object {
  synthetic constructor •() → self::N3
    : super core::Object::•()
    ;
}
class D#7 extends core::Object {
  synthetic constructor •() → self::D#7
    : super core::Object::•()
    ;
}
class N6 extends core::Object {
  synthetic constructor •() → self::N6
    : super core::Object::•()
    ;
}
class N7 extends core::Object {
  synthetic constructor •() → self::N7
    : super core::Object::•()
    ;
}
class N8 extends core::Object {
  synthetic constructor •() → self::N8
    : super core::Object::•()
    ;
}
class N13 extends core::Object {
  synthetic constructor •() → self::N13
    : super core::Object::•()
    ;
}
class N14 extends core::Object {
  synthetic constructor •() → self::N14
    : super core::Object::•()
    ;
}
class N16 extends core::Object {
  synthetic constructor •() → self::N16
    : super core::Object::•()
    ;
}
class N17 extends core::Object {
  synthetic constructor •() → self::N17
    : super core::Object::•()
    ;
}
class N21 extends core::Object {
  synthetic constructor •() → self::N21
    : super core::Object::•()
    ;
}
class N26 extends core::Object {
  synthetic constructor •() → self::N26
    : super core::Object::•()
    ;
}
abstract class _E&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E extends self::_E&_Enum&C /*isEnum*/  {
  static const field core::List<self::E> values = #C4;
  static const field self::E element = #C3;
  const constructor •(core::int #index, core::String #name) → self::E
    : super self::_E&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E.${this.{core::_Enum::_name}{core::String}}";
}
class E1 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E1> values = #C6;
  static const field self::E1 element = #C5;
  const constructor •(core::int #index, core::String #name) → self::E1
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E1.${this.{core::_Enum::_name}{core::String}}";
}
class E2 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E2> values = #C8;
  static const field self::E2 element = #C7;
  const constructor •(core::int #index, core::String #name) → self::E2
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E2.${this.{core::_Enum::_name}{core::String}}";
}
class E3 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E3> values = #C10;
  static const field self::E3 element = #C9;
  const constructor •(core::int #index, core::String #name) → self::E3
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E3.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E4&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E4&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E4 extends self::_E4&_Enum&C /*isEnum*/  {
  static const field core::List<self::E4> values = #C12;
  static const field self::E4 element = #C11;
  const constructor •(core::int #index, core::String #name) → self::E4
    : super self::_E4&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E4.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E5&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E5&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E5 extends self::_E5&_Enum&C /*isEnum*/  {
  static const field core::List<self::E5> values = #C14;
  static const field self::E5 element = #C13;
  const constructor •(core::int #index, core::String #name) → self::E5
    : super self::_E5&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E5.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E6&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E6&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E6 extends self::_E6&_Enum&C /*isEnum*/  {
  static const field core::List<self::E6> values = #C16;
  static const field self::E6 element = #C15;
  const constructor •(core::int #index, core::String #name) → self::E6
    : super self::_E6&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E6.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E7&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E7&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E7 extends self::_E7&_Enum&C /*isEnum*/  {
  static const field core::List<self::E7> values = #C18;
  static const field self::E7 element = #C17;
  const constructor •(core::int #index, core::String #name) → self::E7
    : super self::_E7&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E7.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E8&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E8&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E8 extends self::_E8&_Enum&C /*isEnum*/  {
  static const field core::List<self::E8> values = #C20;
  static const field self::E8 element = #C19;
  const constructor •(core::int #index, core::String #name) → self::E8
    : super self::_E8&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E8.${this.{core::_Enum::_name}{core::String}}";
}
class E9 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E9> values = #C22;
  static const field self::E9 element = #C21;
  const constructor •(core::int #index, core::String #name) → self::E9
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E9.${this.{core::_Enum::_name}{core::String}}";
}
class E10 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E10> values = #C24;
  static const field self::E10 element = #C23;
  const constructor •(core::int #index, core::String #name) → self::E10
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E10.${this.{core::_Enum::_name}{core::String}}";
}
class E11 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E11> values = #C26;
  static const field self::E11 element = #C25;
  const constructor •(core::int #index, core::String #name) → self::E11
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E11.${this.{core::_Enum::_name}{core::String}}";
}
class E12 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E12> values = #C27;
  const constructor •(core::int #index, core::String #name) → self::E12
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E12.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E13&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E13&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E13 extends self::_E13&_Enum&C /*isEnum*/  {
  static const field core::List<self::E13> values = #C29;
  static const field self::E13 element = #C28;
  const constructor •(core::int #index, core::String #name) → self::E13
    : super self::_E13&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E13.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E14&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E14&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E14 extends self::_E14&_Enum&C /*isEnum*/  {
  static const field core::List<self::E14> values = #C31;
  static const field self::E14 element = #C30;
  const constructor •(core::int #index, core::String #name) → self::E14
    : super self::_E14&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E14.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E15&_Enum&D extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E15&_Enum&D
    : super core::_Enum::•(index, _name)
    ;
}
class E15 extends self::_E15&_Enum&D /*isEnum*/  {
  static const field core::List<self::E15> values = #C33;
  static const field self::E15 element = #C32;
  const constructor •(core::int #index, core::String #name) → self::E15
    : super self::_E15&_Enum&D::•(#index, #name)
    ;
  method toString() → core::String
    return "E15.${this.{core::_Enum::_name}{core::String}}";
}
class E16 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E16> values = #C35;
  static const field self::E16 element = #C34;
  const constructor •(core::int #index, core::String #name) → self::E16
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E16.${this.{core::_Enum::_name}{core::String}}";
}
class E17 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E17> values = #C37;
  static const field self::E17 element = #C36;
  const constructor •(core::int #index, core::String #name) → self::E17
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E17.${this.{core::_Enum::_name}{core::String}}";
}
class E18 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E18> values = #C39;
  static const field self::E18 element = #C38;
  const constructor •(core::int #index, core::String #name) → self::E18
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E18.${this.{core::_Enum::_name}{core::String}}";
}
class E19 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E19> values = #C41;
  static const field self::E19 element = #C40;
  const constructor •(core::int #index, core::String #name) → self::E19
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E19.${this.{core::_Enum::_name}{core::String}}";
}
class E20 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E20> values = #C43;
  static const field self::E20 element = #C42;
  const constructor •(core::int #index, core::String #name) → self::E20
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E20.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E21&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E21&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E21 extends self::_E21&_Enum&C /*isEnum*/  {
  static const field core::List<self::E21> values = #C45;
  static const field self::E21 element = #C44;
  const constructor •(core::int #index, core::String #name) → self::E21
    : super self::_E21&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E21.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E22&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E22&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E22 extends self::_E22&_Enum&C /*isEnum*/  {
  static const field core::List<self::E22> values = #C47;
  static const field self::E22 element = #C46;
  const constructor •(core::int #index, core::String #name) → self::E22
    : super self::_E22&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E22.${this.{core::_Enum::_name}{core::String}}";
}
class E23 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E23> values = #C49;
  static const field self::E23 element = #C48;
  const constructor •(core::int #index, core::String #name) → self::E23
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E23.${this.{core::_Enum::_name}{core::String}}";
}
class E24 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E24> values = #C51;
  static const field self::E24 element = #C50;
  const constructor •(core::int #index, core::String #name) → self::E24
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E24.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E25&_Enum&C extends core::_Enum /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •(core::int index, core::String _name) → self::_E25&_Enum&C
    : super core::_Enum::•(index, _name)
    ;
}
class E25 extends self::_E25&_Enum&C /*isEnum*/  {
  static const field core::List<self::E25> values = #C53;
  static const field self::E25 element = #C52;
  const constructor •(core::int #index, core::String #name) → self::E25
    : super self::_E25&_Enum&C::•(#index, #name)
    ;
  method toString() → core::String
    return "E25.${this.{core::_Enum::_name}{core::String}}";
}
class E26 extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E26> values = #C55;
  static const field self::E26 element = #C54;
  const constructor •(core::int #index, core::String #name) → self::E26
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E26.${this.{core::_Enum::_name}{core::String}}";
}
static field dynamic with;
static field dynamic C;
static field dynamic extends;
static field dynamic B;
static field invalid-type implements;
static field dynamic D;
static method main() → dynamic {}

constants  {
  #C1 = 0
  #C2 = "element"
  #C3 = self::E {index:#C1, _name:#C2}
  #C4 = <self::E*>[#C3]
  #C5 = self::E1 {index:#C1, _name:#C2}
  #C6 = <self::E1*>[#C5]
  #C7 = self::E2 {index:#C1, _name:#C2}
  #C8 = <self::E2*>[#C7]
  #C9 = self::E3 {index:#C1, _name:#C2}
  #C10 = <self::E3*>[#C9]
  #C11 = self::E4 {index:#C1, _name:#C2}
  #C12 = <self::E4*>[#C11]
  #C13 = self::E5 {index:#C1, _name:#C2}
  #C14 = <self::E5*>[#C13]
  #C15 = self::E6 {index:#C1, _name:#C2}
  #C16 = <self::E6*>[#C15]
  #C17 = self::E7 {index:#C1, _name:#C2}
  #C18 = <self::E7*>[#C17]
  #C19 = self::E8 {index:#C1, _name:#C2}
  #C20 = <self::E8*>[#C19]
  #C21 = self::E9 {index:#C1, _name:#C2}
  #C22 = <self::E9*>[#C21]
  #C23 = self::E10 {index:#C1, _name:#C2}
  #C24 = <self::E10*>[#C23]
  #C25 = self::E11 {index:#C1, _name:#C2}
  #C26 = <self::E11*>[#C25]
  #C27 = <self::E12*>[]
  #C28 = self::E13 {index:#C1, _name:#C2}
  #C29 = <self::E13*>[#C28]
  #C30 = self::E14 {index:#C1, _name:#C2}
  #C31 = <self::E14*>[#C30]
  #C32 = self::E15 {index:#C1, _name:#C2}
  #C33 = <self::E15*>[#C32]
  #C34 = self::E16 {index:#C1, _name:#C2}
  #C35 = <self::E16*>[#C34]
  #C36 = self::E17 {index:#C1, _name:#C2}
  #C37 = <self::E17*>[#C36]
  #C38 = self::E18 {index:#C1, _name:#C2}
  #C39 = <self::E18*>[#C38]
  #C40 = self::E19 {index:#C1, _name:#C2}
  #C41 = <self::E19*>[#C40]
  #C42 = self::E20 {index:#C1, _name:#C2}
  #C43 = <self::E20*>[#C42]
  #C44 = self::E21 {index:#C1, _name:#C2}
  #C45 = <self::E21*>[#C44]
  #C46 = self::E22 {index:#C1, _name:#C2}
  #C47 = <self::E22*>[#C46]
  #C48 = self::E23 {index:#C1, _name:#C2}
  #C49 = <self::E23*>[#C48]
  #C50 = self::E24 {index:#C1, _name:#C2}
  #C51 = <self::E24*>[#C50]
  #C52 = self::E25 {index:#C1, _name:#C2}
  #C53 = <self::E25*>[#C52]
  #C54 = self::E26 {index:#C1, _name:#C2}
  #C55 = <self::E26*>[#C54]
}


Constructor coverage from constants:
org-dartlang-testcase:///class_header.dart:
- E. (from org-dartlang-testcase:///class_header.dart:61:6)
- _E&_Enum&C. (from org-dartlang-testcase:///class_header.dart:61:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- E1. (from org-dartlang-testcase:///class_header.dart:62:6)
- E2. (from org-dartlang-testcase:///class_header.dart:63:6)
- E3. (from org-dartlang-testcase:///class_header.dart:64:6)
- E4. (from org-dartlang-testcase:///class_header.dart:65:6)
- _E4&_Enum&C. (from org-dartlang-testcase:///class_header.dart:65:6)
- E5. (from org-dartlang-testcase:///class_header.dart:66:6)
- _E5&_Enum&C. (from org-dartlang-testcase:///class_header.dart:66:6)
- E6. (from org-dartlang-testcase:///class_header.dart:67:6)
- _E6&_Enum&C. (from org-dartlang-testcase:///class_header.dart:67:6)
- E7. (from org-dartlang-testcase:///class_header.dart:68:6)
- _E7&_Enum&C. (from org-dartlang-testcase:///class_header.dart:68:6)
- E8. (from org-dartlang-testcase:///class_header.dart:69:6)
- _E8&_Enum&C. (from org-dartlang-testcase:///class_header.dart:69:6)
- E9. (from org-dartlang-testcase:///class_header.dart:70:6)
- E10. (from org-dartlang-testcase:///class_header.dart:71:6)
- E11. (from org-dartlang-testcase:///class_header.dart:72:6)
- E13. (from org-dartlang-testcase:///class_header.dart:74:6)
- _E13&_Enum&C. (from org-dartlang-testcase:///class_header.dart:74:6)
- E14. (from org-dartlang-testcase:///class_header.dart:75:6)
- _E14&_Enum&C. (from org-dartlang-testcase:///class_header.dart:75:6)
- E15. (from org-dartlang-testcase:///class_header.dart:76:6)
- _E15&_Enum&D. (from org-dartlang-testcase:///class_header.dart:76:6)
- E16. (from org-dartlang-testcase:///class_header.dart:77:6)
- E17. (from org-dartlang-testcase:///class_header.dart:78:6)
- E18. (from org-dartlang-testcase:///class_header.dart:79:6)
- E19. (from org-dartlang-testcase:///class_header.dart:80:6)
- E20. (from org-dartlang-testcase:///class_header.dart:81:6)
- E21. (from org-dartlang-testcase:///class_header.dart:82:6)
- _E21&_Enum&C. (from org-dartlang-testcase:///class_header.dart:82:6)
- E22. (from org-dartlang-testcase:///class_header.dart:83:6)
- _E22&_Enum&C. (from org-dartlang-testcase:///class_header.dart:83:6)
- E23. (from org-dartlang-testcase:///class_header.dart:84:6)
- E24. (from org-dartlang-testcase:///class_header.dart:85:6)
- E25. (from org-dartlang-testcase:///class_header.dart:86:6)
- _E25&_Enum&C. (from org-dartlang-testcase:///class_header.dart:86:6)
- E26. (from org-dartlang-testcase:///class_header.dart:87:6)
