diff --git a/DEPS b/DEPS index 90d366978fb..dc14ff7a585 100644 --- a/DEPS +++ b/DEPS @@ -107,7 +107,7 @@ vars = { # and land the review. # # For more details, see https://github.com/dart-lang/sdk/issues/30164 - "dart_style_rev": "6f894c0ca33686122be9085f06e5b9bf6ad55262", + "dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea", "dartdoc_rev" : "a39f378f8100b907e6285ac825967d764fd664ad", "devtools_rev" : "b9f2039239cc72ac8b26f8a5fe46123f34d53ce1", diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect index aa6cb56247a..1a83d84f3a4 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect @@ -1,20 +1,60 @@ -enum E1 { element; final int element = 42; } -enum E2 { element, element; } -enum E3 { element; void element() {} } -enum E4 { element; static void element() {} } -enum E5 { element; static int element = 42; } -enum E6 { element; void set element(E6 value) {} } -enum E7 { element; static void set element(E7 value) {} } +enum E1 { + element; + + final int element = 42; +} + +enum E2 { + element, + element; +} + +enum E3 { + element; + + void element() {} +} + +enum E4 { + element; + + static void element() {} +} + +enum E5 { + element; + + static int element = 42; +} + +enum E6 { + element; + + void set element(E6 value) {} +} + +enum E7 { + element; + + static void set element(E7 value) {} +} + class A8 { void set element(dynamic value) {} } + enum E8 with A8 { element } + class A9 { int element = 42; } + enum E9 with A9 { element } + class A10 { void element() {} } + enum E10 with A10 { element } + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..2ef28c8b3d2 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect @@ -0,0 +1,60 @@ +class A10 { + void element() {} +} + +class A8 { + void set element(dynamic value) {} +} + +class A9 { + int element = 42; +} + +enum E1 { + element; + + final int element = 42; +} + +enum E10 with A10 { element } + +enum E2 { + element, + element; +} + +enum E3 { + element; + + void element() {} +} + +enum E4 { + element; + + static void element() {} +} + +enum E5 { + element; + + static int element = 42; +} + +enum E6 { + element; + + void set element(E6 value) {} +} + +enum E7 { + element; + + static void set element(E7 value) {} +} + +enum E8 with A8 { element } + +enum E9 with A9 { element } + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline.expect index 672888ec08e..e4903186a8d 100644 --- a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline.expect @@ -1,3 +1,20 @@ -enum E { one, two.named(), three.f(), four.f2(); const E(); const E.named() : this(); factory E.f() => values.first; factory E.f2() { return const E(); } const factory E.f3() = E; factory E.f4() = E; factory E.f5() = E.f; factory E.f6(int value) = E.f; } +enum E { + one, + two.named(), + three.f(), + four.f2(); + + const E(); + const E.named() : this(); + factory E.f() => values.first; + factory E.f2() { + return const E(); + } + const factory E.f3() = E; + factory E.f4() = E; + factory E.f5() = E.f; + factory E.f6(int value) = E.f; +} + test() {} main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..03513784f80 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.textual_outline_modelled.expect @@ -0,0 +1,20 @@ +enum E { + one, + two.named(), + three.f(), + four.f2(); + + const E(); + const E.named() : this(); + factory E.f() => values.first; + factory E.f2() { + return const E(); + } + const factory E.f3() = E; + factory E.f4() = E; + factory E.f5() = E.f; + factory E.f6(int value) = E.f; +} + +main() {} +test() {} diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect index 474ee412cba..99971da4db8 100644 --- a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline.expect @@ -1,3 +1,13 @@ -enum T { t; const T.named(); } -enum S { s.named(); const S(); } +enum T { + t; + + const T.named(); +} + +enum S { + s.named(); + + const S(); +} + void main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..487c963f2ce --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/constructor_not_found.dart.textual_outline_modelled.expect @@ -0,0 +1,13 @@ +enum S { + s.named(); + + const S(); +} + +enum T { + t; + + const T.named(); +} + +void main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline.expect index ee99a4961ee..2c03b289582 100644 --- a/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline.expect @@ -1,8 +1,44 @@ -enum E1 { element; static const List values = [E1.element]; } -enum E2 { element; int values = 42; } -enum E3 { element; static const List values = [E3.element]; int values = 42; } -enum E4 { element; static void set values(List x) {} } -enum E5 { element; static void set values(dynamic x) {} } -enum E6 { element; static void set values(Never x) {} } -enum E7 { element; void values() {} } +enum E1 { + element; + + static const List values = [E1.element]; +} + +enum E2 { + element; + + int values = 42; +} + +enum E3 { + element; + + static const List values = [E3.element]; + int values = 42; +} + +enum E4 { + element; + + static void set values(List x) {} +} + +enum E5 { + element; + + static void set values(dynamic x) {} +} + +enum E6 { + element; + + static void set values(Never x) {} +} + +enum E7 { + element; + + void values() {} +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..2c03b289582 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/declared_values.dart.textual_outline_modelled.expect @@ -0,0 +1,44 @@ +enum E1 { + element; + + static const List values = [E1.element]; +} + +enum E2 { + element; + + int values = 42; +} + +enum E3 { + element; + + static const List values = [E3.element]; + int values = 42; +} + +enum E4 { + element; + + static void set values(List x) {} +} + +enum E5 { + element; + + static void set values(dynamic x) {} +} + +enum E6 { + element; + + static void set values(Never x) {} +} + +enum E7 { + element; + + void values() {} +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect index 43447504288..c5514b9daf3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect @@ -1,18 +1,26 @@ abstract class A extends Enum { int get foo => index; } + enum EA with A { element } + abstract class B implements Enum { int get foo => index; } + enum EB with B { element } + mixin M on Enum { int get foo => index; } + enum EM with M { element } + mixin N implements Enum { int get foo => index; } + enum EN with N { element } + expectEquals(x, y) {} main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..1a4630a9067 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect @@ -0,0 +1,24 @@ +abstract class A extends Enum { + int get foo => index; +} + +abstract class B implements Enum { + int get foo => index; +} + +enum EA with A { element } + +enum EB with B { element } + +enum EM with M { element } + +enum EN with N { element } + +expectEquals(x, y) {} +main() {} +mixin M on Enum { + int get foo => index; +} +mixin N implements Enum { + int get foo => index; +} diff --git a/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline.expect index 707dc9c65c6..4f3495e4dfc 100644 --- a/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline.expect @@ -1,5 +1,17 @@ X foo(X x) => x; -enum E1 { bar(foo); const E1(int Function(int) f); } -enum E2 { bar(foo); const E2(X f); } + +enum E1 { + bar(foo); + + const E1(int Function(int) f); +} + +enum E2 { + bar(foo); + + const E2(X f); +} + enum E3 { element } + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..4f3495e4dfc --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/inference_in_constructor_parameters.dart.textual_outline_modelled.expect @@ -0,0 +1,17 @@ +X foo(X x) => x; + +enum E1 { + bar(foo); + + const E1(int Function(int) f); +} + +enum E2 { + bar(foo); + + const E2(X f); +} + +enum E3 { element } + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline.expect index 8ce4f0c8b8a..88e3d26b2be 100644 --- a/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline.expect @@ -1,4 +1,11 @@ -enum E { one(1), two("2"); final X field; const E(this.field); } +enum E { + one(1), + two("2"); + + final X field; + const E(this.field); +} + test() {} foo(E ei, E es) {} bar(E ei, E es) {} diff --git a/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..d32b67ff1a1 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/instantiated_generic_enum_types.dart.textual_outline_modelled.expect @@ -0,0 +1,17 @@ +bar(E ei, E es) {} +baz(E ei, E es) {} +boz(E ei, E es) {} +checkIsNotType(x) {} +checkIsType(x) {} + +enum E { + one(1), + two("2"); + + final X field; + const E(this.field); +} + +foo(E ei, E es) {} +main() {} +test() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline.expect index 57d764013a6..b188f3584a3 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline.expect @@ -1,3 +1,12 @@ -enum E { one("foo"), two("bar"); final String field; const E(this.field); @override String toString() => field; } +enum E { + one("foo"), + two("bar"); + + final String field; + const E(this.field); + @override + String toString() => field; +} + expectEquals(a, b) {} main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..b188f3584a3 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/issue48084.dart.textual_outline_modelled.expect @@ -0,0 +1,12 @@ +enum E { + one("foo"), + two("bar"); + + final String field; + const E(this.field); + @override + String toString() => field; +} + +expectEquals(a, b) {} +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline.expect index ac00eb5e424..90d4341fed5 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline.expect @@ -1,3 +1,16 @@ -enum E { e1, e2; factory E.f(int i) => E.values[i]; } -enum F { f1, f2(42), f3.foo(); factory F(int i) => F.values[i]; } +enum E { + e1, + e2; + + factory E.f(int i) => E.values[i]; +} + +enum F { + f1, + f2(42), + f3.foo(); + + factory F(int i) => F.values[i]; +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..90d4341fed5 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/issue48181.dart.textual_outline_modelled.expect @@ -0,0 +1,16 @@ +enum E { + e1, + e2; + + factory E.f(int i) => E.values[i]; +} + +enum F { + f1, + f2(42), + f3.foo(); + + factory F(int i) => F.values[i]; +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline.expect index 1f7307225b4..359a7aba017 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline.expect @@ -1,2 +1,7 @@ -enum E { v([]); const E(_); } +enum E { + v([]); + + const E(_); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..359a7aba017 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/issue48232.dart.textual_outline_modelled.expect @@ -0,0 +1,7 @@ +enum E { + v([]); + + const E(_); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline.expect index b70621cc2c2..f5732c3abb5 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline.expect @@ -1,6 +1,12 @@ mixin M1 on Enum { int mixedInMethod1(int v) => v; } -enum E with M1 { e1, e2, e3; } + +enum E with M1 { + e1, + e2, + e3; +} + expectEquals(x, y) {} main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..5c66761328c --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/issue48303.dart.textual_outline_modelled.expect @@ -0,0 +1,11 @@ +enum E with M1 { + e1, + e2, + e3; +} + +expectEquals(x, y) {} +main() {} +mixin M1 on Enum { + int mixedInMethod1(int v) => v; +} diff --git a/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline.expect index 4aac745f4d1..47d7784d37e 100644 --- a/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline.expect @@ -1,3 +1,16 @@ -enum E1 { element; E1(); E1.named(); } -enum E2 { one.named1(), two.named2(); const E2.named1() : super(); const E2.named2() : super(42, "42"); } +enum E1 { + element; + + E1(); + E1.named(); +} + +enum E2 { + one.named1(), + two.named2(); + + const E2.named1() : super(); + const E2.named2() : super(42, "42"); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..47d7784d37e --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/malformed_constructors.dart.textual_outline_modelled.expect @@ -0,0 +1,16 @@ +enum E1 { + element; + + E1(); + E1.named(); +} + +enum E2 { + one.named1(), + two.named2(); + + const E2.named1() : super(); + const E2.named2() : super(42, "42"); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline.expect index 1037478f9c5..4235f687821 100644 --- a/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline.expect @@ -1,3 +1,27 @@ -enum E { one(1), two(2); final int foo; final int bar = 42; static E staticFoo = new E.f(); const E(this.foo); factory E.f() => E.one; int method(int value) => value + 10; String staticMethod(double d, bool b) => "$d$b"; } -enum E2 { one(1), two("2"); final X foo; final X? bar = null; static var staticFoo = () => new E2.f(); const E2(this.foo); factory E2.f() => throw 42; int method(int value) => value + 10; String staticMethod(double d, X x) => "$d$x"; } +enum E { + one(1), + two(2); + + final int foo; + final int bar = 42; + static E staticFoo = new E.f(); + const E(this.foo); + factory E.f() => E.one; + int method(int value) => value + 10; + String staticMethod(double d, bool b) => "$d$b"; +} + +enum E2 { + one(1), + two("2"); + + final X foo; + final X? bar = null; + static var staticFoo = () => new E2.f(); + const E2(this.foo); + factory E2.f() => throw 42; + int method(int value) => value + 10; + String staticMethod(double d, X x) => "$d$x"; +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..4235f687821 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/members.dart.textual_outline_modelled.expect @@ -0,0 +1,27 @@ +enum E { + one(1), + two(2); + + final int foo; + final int bar = 42; + static E staticFoo = new E.f(); + const E(this.foo); + factory E.f() => E.one; + int method(int value) => value + 10; + String staticMethod(double d, bool b) => "$d$b"; +} + +enum E2 { + one(1), + two("2"); + + final X foo; + final X? bar = null; + static var staticFoo = () => new E2.f(); + const E2(this.foo); + factory E2.f() => throw 42; + int method(int value) => value + 10; + String staticMethod(double d, X x) => "$d$x"; +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline.expect index c2dd324c033..1cff5f72bd0 100644 --- a/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline.expect @@ -1,4 +1,29 @@ -enum E0 { one(1, bar: 1), two(2, bar: 2); final int foo; final int bar; const E0(this.foo, {required this.bar}); } -enum E1 { one(foo: "1"), two(foo: 2); final X foo; const E1({required this.foo}); } -enum E2 { one(1, bar: "1", baz: 3.14), two("2", baz: 3.14, bar: 2), three(3.0, bar: false); final X foo; final Y bar; final Z? baz; const E2(this.foo, {required this.bar, this.baz = null}); } +enum E0 { + one(1, bar: 1), + two(2, bar: 2); + + final int foo; + final int bar; + const E0(this.foo, {required this.bar}); +} + +enum E1 { + one(foo: "1"), + two(foo: 2); + + final X foo; + const E1({required this.foo}); +} + +enum E2 { + one(1, bar: "1", baz: 3.14), + two("2", baz: 3.14, bar: 2), + three(3.0, bar: false); + + final X foo; + final Y bar; + final Z? baz; + const E2(this.foo, {required this.bar, this.baz = null}); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..1cff5f72bd0 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/named_arguments.dart.textual_outline_modelled.expect @@ -0,0 +1,29 @@ +enum E0 { + one(1, bar: 1), + two(2, bar: 2); + + final int foo; + final int bar; + const E0(this.foo, {required this.bar}); +} + +enum E1 { + one(foo: "1"), + two(foo: 2); + + final X foo; + const E1({required this.foo}); +} + +enum E2 { + one(1, bar: "1", baz: 3.14), + two("2", baz: 3.14, bar: 2), + three(3.0, bar: false); + + final X foo; + final Y bar; + final Z? baz; + const E2(this.foo, {required this.bar, this.baz = null}); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline.expect index 03be650b0af..d49769acdc7 100644 --- a/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline.expect @@ -1,3 +1,18 @@ -enum C { a(1, 2, z: 3), b(z: 3, 1, 2), c(1, z: 3, 2), d.named1(1, 2, 3), e.named2(1, 2, 3), f.named3(1, 2, 3), ; final String log; const C(int x, int y, {int z = 42}) : this.log = "x=$x, y=$y, z=$z"; const C.named1(int x, int y, int z) : this(x, y, z: z); const C.named2(int x, int y, int z) : this(x, z: z, y); const C.named3(int x, int y, int z) : this(z: z, x, y); } +enum C { + a(1, 2, z: 3), + b(z: 3, 1, 2), + c(1, z: 3, 2), + d.named1(1, 2, 3), + e.named2(1, 2, 3), + f.named3(1, 2, 3), + ; + + final String log; + const C(int x, int y, {int z = 42}) : this.log = "x=$x, y=$y, z=$z"; + const C.named1(int x, int y, int z) : this(x, y, z: z); + const C.named2(int x, int y, int z) : this(x, z: z, y); + const C.named3(int x, int y, int z) : this(z: z, x, y); +} + main() {} expect(expected, actual) {} diff --git a/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..8fff920052c --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/redirecting_constructor.dart.textual_outline_modelled.expect @@ -0,0 +1,18 @@ +enum C { + a(1, 2, z: 3), + b(z: 3, 1, 2), + c(1, z: 3, 2), + d.named1(1, 2, 3), + e.named2(1, 2, 3), + f.named3(1, 2, 3), + ; + + final String log; + const C(int x, int y, {int z = 42}) : this.log = "x=$x, y=$y, z=$z"; + const C.named1(int x, int y, int z) : this(x, y, z: z); + const C.named2(int x, int y, int z) : this(x, z: z, y); + const C.named3(int x, int y, int z) : this(z: z, x, y); +} + +expect(expected, actual) {} +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline.expect index bc9f7ff54f4..e53cb1d06ee 100644 --- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline.expect @@ -1,2 +1,7 @@ -enum E { a.b() ; const E.b(); } +enum E { + a.b(); + + const E.b(); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..e53cb1d06ee --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.textual_outline_modelled.expect @@ -0,0 +1,7 @@ +enum E { + a.b(); + + const E.b(); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline.expect index 8246ad5f2db..89a8e24134f 100644 --- a/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline.expect @@ -1,3 +1,19 @@ -enum E1 { one(1), two.named(2); final int foo; const E1(this.foo); const E1.named(int value) : this(value); } -enum E2 { one(1), two.named(2); final int foo; const E2(this.foo); const E2.named(int value) : this(value, value); } +enum E1 { + one(1), + two.named(2); + + final int foo; + const E1(this.foo); + const E1.named(int value) : this(value); +} + +enum E2 { + one(1), + two.named(2); + + final int foo; + const E2(this.foo); + const E2.named(int value) : this(value, value); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..89a8e24134f --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/redirecting_initializers.dart.textual_outline_modelled.expect @@ -0,0 +1,19 @@ +enum E1 { + one(1), + two.named(2); + + final int foo; + const E1(this.foo); + const E1.named(int value) : this(value); +} + +enum E2 { + one(1), + two.named(2); + + final int foo; + const E2(this.foo); + const E2.named(int value) : this(value, value); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline.expect index d11d9cd0b8b..08155878621 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline.expect @@ -1,3 +1,21 @@ -enum E1 { one(1), two.named(2); final int foo; const E1(this.foo); const E1.named(int value) : foo = value; } -enum E2 { one(1, "one"), two.named("two", 2), three.named("three", "three"); final X foo; final Y bar; const E2(this.foo, this.bar); const E2.named(Y this.bar, X this.foo); } +enum E1 { + one(1), + two.named(2); + + final int foo; + const E1(this.foo); + const E1.named(int value) : foo = value; +} + +enum E2 { + one(1, "one"), + two.named("two", 2), + three.named("three", "three"); + + final X foo; + final Y bar; + const E2(this.foo, this.bar); + const E2.named(Y this.bar, X this.foo); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..08155878621 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/simple_fields.dart.textual_outline_modelled.expect @@ -0,0 +1,21 @@ +enum E1 { + one(1), + two.named(2); + + final int foo; + const E1(this.foo); + const E1.named(int value) : foo = value; +} + +enum E2 { + one(1, "one"), + two.named("two", 2), + three.named("three", "three"); + + final X foo; + final Y bar; + const E2(this.foo, this.bar); + const E2.named(Y this.bar, X this.foo); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline.expect index b33af83d207..0a18666801f 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline.expect @@ -1,10 +1,30 @@ abstract class I { void foo(); } -enum E1 implements I { one, two; void foo() {} } + +enum E1 implements I { + one, + two; + + void foo() {} +} + enum E2 implements I { one, two } -enum E3 implements I? { one, two; void foo() {} } -enum E4 { one, two; void foo() {} } + +enum E3 implements I? { + one, + two; + + void foo() {} +} + +enum E4 { + one, + two; + + void foo() {} +} + bar(I i) {} test(E1 e1, E2 e2, E3 e3, E4 e4) {} main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..8fe40d69c41 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart.textual_outline_modelled.expect @@ -0,0 +1,31 @@ +abstract class I { + void foo(); +} + +bar(I i) {} + +enum E1 implements I { + one, + two; + + void foo() {} +} + +enum E2 implements I { one, two } + +enum E3 implements I? { + one, + two; + + void foo() {} +} + +enum E4 { + one, + two; + + void foo() {} +} + +main() {} +test(E1 e1, E2 e2, E3 e3, E4 e4) {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect index 8e3abd89d31..a428d0bf5db 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect @@ -1,15 +1,21 @@ class A { String get foo => "foo"; } + class B { int bar() => 42; } + mixin M { void set callOnAssignment(void Function() f) {} } + enum E1 with A { one, two } + enum E2 with A, B { one, two } + enum E3 with M { one, two } + expectEquals(x, y) {} expectThrows(void Function() f) {} void throwOnCall() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..bd0fbf1cd46 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect @@ -0,0 +1,21 @@ +class A { + String get foo => "foo"; +} + +class B { + int bar() => 42; +} + +enum E1 with A { one, two } + +enum E2 with A, B { one, two } + +enum E3 with M { one, two } + +expectEquals(x, y) {} +expectThrows(void Function() f) {} +main() {} +mixin M { + void set callOnAssignment(void Function() f) {} +} +void throwOnCall() {} diff --git a/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline.expect index 4aac745f4d1..47d7784d37e 100644 --- a/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline.expect @@ -1,3 +1,16 @@ -enum E1 { element; E1(); E1.named(); } -enum E2 { one.named1(), two.named2(); const E2.named1() : super(); const E2.named2() : super(42, "42"); } +enum E1 { + element; + + E1(); + E1.named(); +} + +enum E2 { + one.named1(), + two.named2(); + + const E2.named1() : super(); + const E2.named2() : super(42, "42"); +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..47d7784d37e --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/super_parameters/malformed_constructors.dart.textual_outline_modelled.expect @@ -0,0 +1,16 @@ +enum E1 { + element; + + E1(); + E1.named(); +} + +enum E2 { + one.named1(), + two.named2(); + + const E2.named1() : super(); + const E2.named2() : super(42, "42"); +} + +main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline.expect index 5874d3ef321..998e8151b6d 100644 --- a/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline.expect @@ -1,6 +1,12 @@ mixin GM on Enum {} mixin M on Object {} + abstract class I {} + abstract class GI {} -enum E with GM, M implements I, GI { element } + +enum E with GM, M implements I, GI { + element +} + main() {} diff --git a/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..9a1883e84c5 --- /dev/null +++ b/pkg/front_end/testcases/enhanced_enums/supertype_resolved_before_checking.dart.textual_outline_modelled.expect @@ -0,0 +1,11 @@ +abstract class GI {} + +abstract class I {} + +enum E with GM, M implements I, GI { + element +} + +main() {} +mixin GM on Enum {} +mixin M on Object {} diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect index 42c4aa9527a..6b1018fb76a 100644 --- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline.expect @@ -12,4 +12,5 @@ enum Foo { baz, cafebabe, } + main() {} diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect index 18666094ef1..1b22ef3e6d6 100644 --- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.textual_outline_modelled.expect @@ -4,6 +4,7 @@ class Fisk { } const int hest = 42; + enum Foo { @hest bar, @@ -11,4 +12,5 @@ enum Foo { baz, cafebabe, } + main() {} diff --git a/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline.expect b/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline.expect index ba503dccddf..8ced9549a87 100644 --- a/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline.expect @@ -15,4 +15,5 @@ enum E { _Enum, List, } + main() {} diff --git a/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline_modelled.expect index 361bcb39a88..63ae580d8bb 100644 --- a/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/enum_names_from_core.dart.textual_outline_modelled.expect @@ -15,4 +15,5 @@ enum E { _Enum, List, } + main() {} diff --git a/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline.expect b/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline.expect index 9e362fc0275..f5cfa60009b 100644 --- a/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline.expect @@ -1,6 +1,7 @@ import 'main_lib.dart'; enum Enum1 { a, b, c } + typedef Alias1 = Enum1; test() {} main() {} diff --git a/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline_modelled.expect index 596d8b22b87..5082198a48c 100644 --- a/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/instantiate_enum/main.dart.textual_outline_modelled.expect @@ -1,6 +1,7 @@ import 'main_lib.dart'; enum Enum1 { a, b, c } + main() {} test() {} typedef Alias1 = Enum1; diff --git a/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline.expect b/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline.expect index 4e0154a404d..fcf0e3ceec5 100644 --- a/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline.expect @@ -1,5 +1,7 @@ // @dart = 2.9 const a = null; + @a enum E { E1, E2, E3 } + main() {} diff --git a/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline_modelled.expect index 4e0154a404d..fcf0e3ceec5 100644 --- a/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/metadata_enum.dart.textual_outline_modelled.expect @@ -1,5 +1,7 @@ // @dart = 2.9 const a = null; + @a enum E { E1, E2, E3 } + main() {} diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect index 7e8eab67284..d228da553a0 100644 --- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect @@ -2,5 +2,6 @@ library test; enum E { v1 } + final x = E.v1; main() {} diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect index 7e8eab67284..d228da553a0 100644 --- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect @@ -2,5 +2,6 @@ library test; enum E { v1 } + final x = E.v1; main() {} diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect index 429c1845ece..f7c56439b55 100644 --- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect @@ -2,5 +2,6 @@ library test; enum E { v1 } + final x = E.values; main() {} diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect index 429c1845ece..f7c56439b55 100644 --- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect @@ -2,5 +2,6 @@ library test; enum E { v1 } + final x = E.values; main() {} diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline.expect index 0823c8f1178..9ff88d235ba 100644 --- a/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline.expect @@ -12,7 +12,9 @@ Future returnAsync6() async {} Future returnAsync7() async {} Iterable yieldSync() sync* {} Stream yieldAsync() async* {} + enum Enum { a, b } + Enum caseReturn1(Enum e) {} Enum caseReturn2(Enum e) {} localFunctions() {} diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline_modelled.expect index cc610a60d98..becfa0f3f47 100644 --- a/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd/return_null.dart.textual_outline_modelled.expect @@ -13,7 +13,9 @@ Stream yieldAsync() async* {} String returnExplicit() {} String returnImplicit() {} String returnMixed(bool b) {} + enum Enum { a, b } + localFunctions() {} main() {} returnAsync5() async {} diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline.expect index acc9973807b..664483043e9 100644 --- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline.expect @@ -1,4 +1,5 @@ enum Enum { e1, e2 } + int method1(Enum? e) {} int method2(Enum? e) {} int method3(Enum? e) {} diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline_modelled.expect index a18d6e91bd8..78ea1cbcda0 100644 --- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.textual_outline_modelled.expect @@ -1,4 +1,5 @@ enum Enum { e1, e2 } + expect(expected, actual) {} int method1(Enum? e) {} int method2(Enum? e) {} diff --git a/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect index c10a31dc781..08d57650abf 100644 --- a/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/enum.dart.textual_outline.expect @@ -3,4 +3,5 @@ enum Foo { ec1, ec2, } + main() {} diff --git a/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect index c10a31dc781..08d57650abf 100644 --- a/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/enum.dart.textual_outline_modelled.expect @@ -3,4 +3,5 @@ enum Foo { ec1, ec2, } + main() {} diff --git a/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline.expect b/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline.expect index b42a46fbb7f..2af26791bf5 100644 --- a/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline.expect +++ b/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline.expect @@ -2,4 +2,5 @@ enum A { a, b, } + main() {} diff --git a/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline_modelled.expect index b42a46fbb7f..2af26791bf5 100644 --- a/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/static_field_lowering/enum.dart.textual_outline_modelled.expect @@ -2,4 +2,5 @@ enum A { a, b, } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline.expect index 94dbab2a56d..51a454db03d 100644 --- a/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline.expect @@ -1,28 +1,36 @@ B1 f1() => throw 42; + class A1 { var foo = f1(); A1(this.foo); } + class B1 extends A1 { B1(super.foo) : super(); } + class A2 { var foo = B2.new; A2(this.foo); } + class B2 extends A2 { B2(super.foo) : super(); } + class A3 { var foo = C3.new; A3(); A3.initializeFoo(this.foo); } + class B3 extends A3 { var bar = A3.initializeFoo; B3(this.bar) : super(); } + class C3 extends B3 { C3(super.bar) : super(); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..310cf19cf54 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart.textual_outline_modelled.expect @@ -0,0 +1,36 @@ +B1 f1() => throw 42; + +class A1 { + A1(this.foo); + var foo = f1(); +} + +class A2 { + A2(this.foo); + var foo = B2.new; +} + +class A3 { + A3(); + A3.initializeFoo(this.foo); + var foo = C3.new; +} + +class B1 extends A1 { + B1(super.foo) : super(); +} + +class B2 extends A2 { + B2(super.foo) : super(); +} + +class B3 extends A3 { + B3(this.bar) : super(); + var bar = A3.initializeFoo; +} + +class C3 extends B3 { + C3(super.bar) : super(); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline.expect index 9f3486cf51f..9766c4d0c77 100644 --- a/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline.expect @@ -2,97 +2,122 @@ class S1 { int s; S1([int x = 0]) : s = x - 1; } + class C1 extends S1 { int c; C1([super.x]) : c = x + 1; } + class S2 { int s; S2({int x = 0}) : s = x - 1; } + class C2 extends S2 { int c; C2({super.x}) : c = x + 1; } + class S3 { int s; S3([int x = 0]) : s = x - 1; } + class C3 extends S3 { int c; C3([super.x = 42]) : c = x + 1; } + class S4 { int s; S4({int x = 0}) : s = x - 1; } + class C4 extends S4 { int c; C4({super.x = 42}) : c = x + 1; } + class S5 { num a; S5([num x = 3.14]) : a = x - 1; } + class C5 extends S5 { C5([int super.x]); } + class S6 { num? a; S6([num? x = 3.14]) : a = x; } + class C6 extends S6 { int? b; C6([int? super.x]); } + class S7 { int s; S7([int x = 0]) : s = x - 1; } + class C7 extends S7 { int c; C7([super.x]) : c = x + 1; } + class CC7 extends C7 { int cc; CC7([super.x]) : cc = x * 1; } + class S8 { int s; S8([int x = 0]) : s = x - 1; } + class CC8 extends C8 { int cc; CC8([super.x]) : cc = x * 1; } + class C8 extends S8 { int c; C8([super.x]) : c = x + 1; } + class CC9 extends C9 { int cc; CC9([super.x]) : cc = x * 1; } + class C9 extends S9 { int c; C9([super.x]) : c = x + 1; } + class S9 { int s; S9([int x = 0]) : s = x - 1; } + class Ap { Ap([num x = 3.14]); } + class Bp extends Ap { Bp([int super.x]); Bp.req(int super.x); } + class An { An({num x = 3.14}); } + class Bn extends An { Bn({int super.x}); Bn.req({required int super.x}); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..6b17d464c91 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/default_values.dart.textual_outline_modelled.expect @@ -0,0 +1,123 @@ +class An { + An({num x = 3.14}); +} + +class Ap { + Ap([num x = 3.14]); +} + +class Bn extends An { + Bn({int super.x}); + Bn.req({required int super.x}); +} + +class Bp extends Ap { + Bp([int super.x]); + Bp.req(int super.x); +} + +class C1 extends S1 { + C1([super.x]) : c = x + 1; + int c; +} + +class C2 extends S2 { + C2({super.x}) : c = x + 1; + int c; +} + +class C3 extends S3 { + C3([super.x = 42]) : c = x + 1; + int c; +} + +class C4 extends S4 { + C4({super.x = 42}) : c = x + 1; + int c; +} + +class C5 extends S5 { + C5([int super.x]); +} + +class C6 extends S6 { + C6([int? super.x]); + int? b; +} + +class C7 extends S7 { + C7([super.x]) : c = x + 1; + int c; +} + +class C8 extends S8 { + C8([super.x]) : c = x + 1; + int c; +} + +class C9 extends S9 { + C9([super.x]) : c = x + 1; + int c; +} + +class CC7 extends C7 { + CC7([super.x]) : cc = x * 1; + int cc; +} + +class CC8 extends C8 { + CC8([super.x]) : cc = x * 1; + int cc; +} + +class CC9 extends C9 { + CC9([super.x]) : cc = x * 1; + int cc; +} + +class S1 { + S1([int x = 0]) : s = x - 1; + int s; +} + +class S2 { + S2({int x = 0}) : s = x - 1; + int s; +} + +class S3 { + S3([int x = 0]) : s = x - 1; + int s; +} + +class S4 { + S4({int x = 0}) : s = x - 1; + int s; +} + +class S5 { + S5([num x = 3.14]) : a = x - 1; + num a; +} + +class S6 { + S6([num? x = 3.14]) : a = x; + num? a; +} + +class S7 { + S7([int x = 0]) : s = x - 1; + int s; +} + +class S8 { + S8([int x = 0]) : s = x - 1; + int s; +} + +class S9 { + S9([int x = 0]) : s = x - 1; + int s; +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect index befb5f987cb..0f8b504af7e 100644 --- a/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect @@ -1,8 +1,10 @@ class A { A(num a); } + class B extends A { B.sub1(int super.a1); B.sub2(double super.a2); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..0f8b504af7e --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline_modelled.expect @@ -0,0 +1,10 @@ +class A { + A(num a); +} + +class B extends A { + B.sub1(int super.a1); + B.sub2(double super.a2); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline.expect index d25be67ada9..5a6498ff3b1 100644 --- a/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline.expect @@ -3,21 +3,52 @@ class S1 { int s2; S1(this.s1, [this.s2 = 42]); } + class C1 extends S1 { int i1; int i2; C1(this.i1, super.s1, int x, [super.s2]) : this.i2 = x; } + class S2 { - S2({String one = "1", bool two = false, int three = 3, double four = 4, num five = 3.14, List six = const ["six"]}); + S2( + {String one = "1", + bool two = false, + int three = 3, + double four = 4, + num five = 3.14, + List six = const ["six"]}); } + class C21 extends S2 { - C21({dynamic foo, super.one, dynamic bar, dynamic baz, super.three, super.five}); + C21( + {dynamic foo, + super.one, + dynamic bar, + dynamic baz, + super.three, + super.five}); } + class C22 extends S2 { - C22({dynamic foo, super.six, dynamic bar, dynamic baz, super.four, super.two}); + C22( + {dynamic foo, + super.six, + dynamic bar, + dynamic baz, + super.four, + super.two}); } + class C23 extends S2 { - C23({super.three, dynamic foo, super.one, super.four, dynamic bar, super.two, dynamic baz}); + C23( + {super.three, + dynamic foo, + super.one, + super.four, + dynamic bar, + super.two, + dynamic baz}); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..d4a92de5b37 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/issue48142.dart.textual_outline_modelled.expect @@ -0,0 +1,54 @@ +class C1 extends S1 { + C1(this.i1, super.s1, int x, [super.s2]) : this.i2 = x; + int i1; + int i2; +} + +class C21 extends S2 { + C21( + {dynamic foo, + super.one, + dynamic bar, + dynamic baz, + super.three, + super.five}); +} + +class C22 extends S2 { + C22( + {dynamic foo, + super.six, + dynamic bar, + dynamic baz, + super.four, + super.two}); +} + +class C23 extends S2 { + C23( + {super.three, + dynamic foo, + super.one, + super.four, + dynamic bar, + super.two, + dynamic baz}); +} + +class S1 { + S1(this.s1, [this.s2 = 42]); + int s1; + int s2; +} + +class S2 { + S2( + {String one = "1", + bool two = false, + int three = 3, + double four = 4, + num five = 3.14, + List six = const ["six"]}); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline.expect index 9eae54abdf7..c769e7dbe94 100644 --- a/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline.expect @@ -4,9 +4,11 @@ class S { S(this.n, this.t); S.named(this.t, this.n); } + class C extends S { C.constr1(super.n, String s, super.t); C.constr2(int i, super.n, String s, super.t) : super(); C.constr3(int i, super.t, String s, super.n) : super.named(); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..b593fa1ee65 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/issue48286.dart.textual_outline_modelled.expect @@ -0,0 +1,14 @@ +class C extends S { + C.constr1(super.n, String s, super.t); + C.constr2(int i, super.n, String s, super.t) : super(); + C.constr3(int i, super.t, String s, super.n) : super.named(); +} + +class S { + S(this.n, this.t); + S.named(this.t, this.n); + T t; + num n; +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline.expect index f0bc3ea1212..91dee2383b3 100644 --- a/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline.expect @@ -2,7 +2,9 @@ class A { final int foo; A(this.foo); } + class B extends A { B(super.foo); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..ce8d86859fe --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/simple.dart.textual_outline_modelled.expect @@ -0,0 +1,10 @@ +class A { + A(this.foo); + final int foo; +} + +class B extends A { + B(super.foo); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline.expect index a194020a0c8..ebcc1b51112 100644 --- a/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline.expect @@ -5,18 +5,22 @@ class A1 { A1.named2(int foo) : foo = foo; A1.named3({required int foo}) : foo = foo; } + class B1 extends A1 { B1(super.foo); B1.named(super.foo) : super.named(); B1.named2(super.foo) : super.named2(); B1.named3({required super.foo}) : super.named3(); } + class A2 { final int foo; final String bar; A2({required int this.foo, required String this.bar}); } + class B2 extends A2 { B2({required super.bar, required super.foo}); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..7b7faf4ec23 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/simple_inference.dart.textual_outline_modelled.expect @@ -0,0 +1,26 @@ +class A1 { + A1(this.foo); + A1.named(this.foo); + A1.named2(int foo) : foo = foo; + A1.named3({required int foo}) : foo = foo; + final int foo; +} + +class A2 { + A2({required int this.foo, required String this.bar}); + final String bar; + final int foo; +} + +class B1 extends A1 { + B1(super.foo); + B1.named(super.foo) : super.named(); + B1.named2(super.foo) : super.named2(); + B1.named3({required super.foo}) : super.named3(); +} + +class B2 extends A2 { + B2({required super.bar, required super.foo}); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect index 3c4243b35a4..ff4395b3237 100644 --- a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect @@ -2,22 +2,28 @@ class A1 { final int foo; A1({required this.foo}); } + class B1 extends A1 { B1({required super.foo}) : super(); } + class C1 extends A1 { C1({required super.foo}) : super(foo: foo); } + class A2 { final int foo; final String bar; A2({required this.foo, required this.bar}); } + class B2 extends A2 { B2() : super(foo: 42, bar: "bar", baz: false); } + class C2 extends A2 { C2({required super.foo}) : super(); C2.other({required super.foo}) : super(bar: 'bar'); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..4ce72d06b11 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline_modelled.expect @@ -0,0 +1,29 @@ +class A1 { + A1({required this.foo}); + final int foo; +} + +class A2 { + A2({required this.foo, required this.bar}); + final String bar; + final int foo; +} + +class B1 extends A1 { + B1({required super.foo}) : super(); +} + +class B2 extends A2 { + B2() : super(foo: 42, bar: "bar", baz: false); +} + +class C1 extends A1 { + C1({required super.foo}) : super(foo: foo); +} + +class C2 extends A2 { + C2({required super.foo}) : super(); + C2.other({required super.foo}) : super(bar: 'bar'); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect index a6fc5bc52aa..2d8c9209164 100644 --- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect @@ -2,21 +2,27 @@ class A1 { final int foo; A1(this.foo); } + class B1 extends A1 { B1(super.foo) : super(); } + class C1 extends A1 { C1(super.foo) : super(42); } + class A2 { final int foo; final String bar; A2(this.foo, this.bar); } + class B2 extends A2 { B2() : super(0, 1, 2); } + class C2 extends A2 { C2(super.foo) : super(); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..0602b3a4de3 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline_modelled.expect @@ -0,0 +1,28 @@ +class A1 { + A1(this.foo); + final int foo; +} + +class A2 { + A2(this.foo, this.bar); + final String bar; + final int foo; +} + +class B1 extends A1 { + B1(super.foo) : super(); +} + +class B2 extends A2 { + B2() : super(0, 1, 2); +} + +class C1 extends A1 { + C1(super.foo) : super(42); +} + +class C2 extends A2 { + C2(super.foo) : super(); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline.expect index 7acd1b769b3..d71530bb240 100644 --- a/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline.expect @@ -3,8 +3,10 @@ class S { int s2; S([this.s1 = 1, this.s2 = 2]); } + class C extends S { int c1; C(this.c1, [int super.s1, int x = 0, int super.s2]); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..4d4ec1e6ce6 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/super_parameters_with_types_and_default_values.dart.textual_outline_modelled.expect @@ -0,0 +1,12 @@ +class C extends S { + C(this.c1, [int super.s1, int x = 0, int super.s2]); + int c1; +} + +class S { + S([this.s1 = 1, this.s2 = 2]); + int s1; + int s2; +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect index ed0e4f7b01e..570dcce2291 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect @@ -2,53 +2,75 @@ class A1 { final int a; A1(this.a); } + class B1 {} + class C1 = A1 with B1; + class D1 extends C1 { D1(super.a); } + class A2 { final int a; A2({this.a = 0}); } + class B2 {} + class C2 = A2 with B2; + class D2 extends C2 { D2({super.a}); } + class A3 { final int a; A3([this.a = 0]); } + class B3 {} + class C3 = A3 with B3; + class D3 extends C3 { D3([super.a]); } + class D4 extends C4 { D4([super.foo]); } + class C4 = A4 with B4; + class B4 {} + class A4 extends AA4 { A4([super.foo]); } + class AA4 { final int foo; AA4([this.foo = 42]); } + class D5 extends C5c { D5([super.foo]); } + class C5c = C5b with B5; class C5b = C5a with B5; class C5a = A5 with B5; + class B5 {} + class A5 extends AA5 { A5([super.foo]); } + class AA5 { final int foo; AA5([this.foo = 42]); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..a0dfff28b72 --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect @@ -0,0 +1,72 @@ +class A1 { + A1(this.a); + final int a; +} + +class A2 { + A2({this.a = 0}); + final int a; +} + +class A3 { + A3([this.a = 0]); + final int a; +} + +class A4 extends AA4 { + A4([super.foo]); +} + +class A5 extends AA5 { + A5([super.foo]); +} + +class AA4 { + AA4([this.foo = 42]); + final int foo; +} + +class AA5 { + AA5([this.foo = 42]); + final int foo; +} + +class B1 {} + +class B2 {} + +class B3 {} + +class B4 {} + +class B5 {} + +class C1 = A1 with B1; +class C2 = A2 with B2; +class C3 = A3 with B3; +class C4 = A4 with B4; +class C5a = A5 with B5; +class C5b = C5a with B5; +class C5c = C5b with B5; + +class D1 extends C1 { + D1(super.a); +} + +class D2 extends C2 { + D2({super.a}); +} + +class D3 extends C3 { + D3([super.a]); +} + +class D4 extends C4 { + D4([super.foo]); +} + +class D5 extends C5c { + D5([super.foo]); +} + +main() {} diff --git a/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline.expect index 1e4deb1643b..0903aa2d713 100644 --- a/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline.expect @@ -2,44 +2,56 @@ class A1 { final String foo; A1(this.foo); } + typedef TA1 = A1; typedef TTA1 = TA1; typedef TTTA1 = TTA1; typedef TTTTA1 = TTTA1; + class D1 extends TTTTA1 { D1(super.foo); } + class A2 { final String foo; A2({this.foo = "bar"}); } + typedef TA2 = A2; typedef TTA2 = TA2; typedef TTTA2 = TTA2; typedef TTTTA2 = TTTA2; + class D2 extends TTTTA2 { D2({super.foo}); } + class A3 { final String foo; A3([this.foo = "bar"]); } + typedef TA3 = A3; typedef TTA3 = TA3; typedef TTTA3 = TTA3; typedef TTTTA3 = TTTA3; + class D3 extends TTTTA3 { D3([super.foo]); } + class D4 extends TTTTA4 { D4([super.foo]); } + typedef TTTTA4 = TTTA4; typedef TTTA4 = TTA4; typedef TTA4 = TA4; typedef TA4 = A4; + class A4 { final String foo; A4([this.foo = "bar"]); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..095c39028bc --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/type_alias_in_supertype.dart.textual_outline_modelled.expect @@ -0,0 +1,53 @@ +class A1 { + A1(this.foo); + final String foo; +} + +class A2 { + A2({this.foo = "bar"}); + final String foo; +} + +class A3 { + A3([this.foo = "bar"]); + final String foo; +} + +class A4 { + A4([this.foo = "bar"]); + final String foo; +} + +class D1 extends TTTTA1 { + D1(super.foo); +} + +class D2 extends TTTTA2 { + D2({super.foo}); +} + +class D3 extends TTTTA3 { + D3([super.foo]); +} + +class D4 extends TTTTA4 { + D4([super.foo]); +} + +main() {} +typedef TA1 = A1; +typedef TA2 = A2; +typedef TA3 = A3; +typedef TA4 = A4; +typedef TTA1 = TA1; +typedef TTA2 = TA2; +typedef TTA3 = TA3; +typedef TTA4 = TA4; +typedef TTTA1 = TTA1; +typedef TTTA2 = TTA2; +typedef TTTA3 = TTA3; +typedef TTTA4 = TTA4; +typedef TTTTA1 = TTTA1; +typedef TTTTA2 = TTTA2; +typedef TTTTA3 = TTTA3; +typedef TTTTA4 = TTTA4; diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect index f29b9814dbc..82f686f85fd 100644 --- a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect @@ -2,35 +2,45 @@ class A1 { final int foo; A1(int this.foo); } + class B1 extends A1 { B1(int super.foo); } + class A2 { final int Function(int) foo; A2(int Function(int) this.foo); } + class B2 extends A2 { B2(int Function(int) super.foo); } + class A3 { final int Function(int) foo; A3(int this.foo(int)); } + class B3 extends A3 { B3(int super.foo(int)); } + class A4 { final void Function() Function(void Function()) foo; A4(void Function() this.foo(void Function())); } + class B4 extends A4 { B4(void Function() super.foo(void Function())); } + class A5 { final void Function() Function(void Function()) foo; A5(void Function() Function(void Function()) this.foo); } + class B5 extends A5 { B5(void Function() Function(void Function()) super.foo); } + main() {} diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..cf41b18da4a --- /dev/null +++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline_modelled.expect @@ -0,0 +1,46 @@ +class A1 { + A1(int this.foo); + final int foo; +} + +class A2 { + A2(int Function(int) this.foo); + final int Function(int) foo; +} + +class A3 { + A3(int this.foo(int)); + final int Function(int) foo; +} + +class A4 { + A4(void Function() this.foo(void Function())); + final void Function() Function(void Function()) foo; +} + +class A5 { + A5(void Function() Function(void Function()) this.foo); + final void Function() Function(void Function()) foo; +} + +class B1 extends A1 { + B1(int super.foo); +} + +class B2 extends A2 { + B2(int Function(int) super.foo); +} + +class B3 extends A3 { + B3(int super.foo(int)); +} + +class B4 extends A4 { + B4(void Function() super.foo(void Function())); +} + +class B5 extends A5 { + B5(void Function() Function(void Function()) super.foo); +} + +main() {} diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status index e5d43b62eb5..6b47db97bbd 100644 --- a/pkg/front_end/testcases/textual_outline.status +++ b/pkg/front_end/testcases/textual_outline.status @@ -28,30 +28,8 @@ constructor_tearoffs/issue47075: FormatterCrash constructor_tearoffs/new_as_selector: FormatterCrash dart2js/late_fields: FormatterCrash dart2js/late_statics: FormatterCrash -enhanced_enums/conflicting_elements: FormatterCrash -enhanced_enums/constructor_calls: FormatterCrash -enhanced_enums/constructor_not_found: FormatterCrash -enhanced_enums/declared_values: FormatterCrash enhanced_enums/entries_with_type_arguments: FormatterCrash -enhanced_enums/enum_as_supertype: FormatterCrash -enhanced_enums/inference_in_constructor_parameters: FormatterCrash -enhanced_enums/instantiated_generic_enum_types: FormatterCrash -enhanced_enums/issue48084: FormatterCrash -enhanced_enums/issue48181: FormatterCrash -enhanced_enums/issue48232: FormatterCrash -enhanced_enums/issue48303: FormatterCrash -enhanced_enums/malformed_constructors: FormatterCrash -enhanced_enums/members: FormatterCrash -enhanced_enums/named_arguments: FormatterCrash -enhanced_enums/named_arguments_anywhere/redirecting_constructor: FormatterCrash -enhanced_enums/qualified_names_with_no_type_arguments: FormatterCrash enhanced_enums/recovery_in_elements: FormatterCrash -enhanced_enums/redirecting_initializers: FormatterCrash -enhanced_enums/simple_fields: FormatterCrash -enhanced_enums/simple_interfaces: FormatterCrash -enhanced_enums/simple_mixins: FormatterCrash -enhanced_enums/super_parameters/malformed_constructors: FormatterCrash -enhanced_enums/supertype_resolved_before_checking: FormatterCrash extension_types/basic_show: FormatterCrash extension_types/call_not_get: FormatterCrash extension_types/keyword_in_show_hide_element: FormatterCrash @@ -231,22 +209,8 @@ regress/issue_37285: FormatterCrash regress/issue_39091_1: FormatterCrash regress/issue_41265.crash: Crash regress/issue_41265.crash: FormatterCrash -super_parameters/circular_dependency_inference: FormatterCrash -super_parameters/default_values: FormatterCrash super_parameters/issue47741: FormatterCrash super_parameters/issue47922: FormatterCrash -super_parameters/issue47951: FormatterCrash -super_parameters/issue48142: FormatterCrash -super_parameters/issue48286: FormatterCrash -super_parameters/simple: FormatterCrash -super_parameters/simple_inference: FormatterCrash -super_parameters/simple_named_super_parameters: FormatterCrash -super_parameters/simple_positional_super_parameters: FormatterCrash -super_parameters/super_parameters_with_types_and_default_values: FormatterCrash -super_parameters/synthesized_super_constructor_with_parameters: FormatterCrash -super_parameters/type_alias_in_supertype: FormatterCrash -super_parameters/typed_super_parameter: FormatterCrash -super_parameters/typed_super_parameters: FormatterCrash triple_shift/invalid_operator: FormatterCrash variance/class_type_parameter_modifier: FormatterCrash variance/generic_covariance_sound_variance: FormatterCrash diff --git a/tests/language/enum/enhanced_enums_basic_test.dart b/tests/language/enum/enhanced_enums_basic_test.dart index 2b295212cf7..be97c45b073 100644 --- a/tests/language/enum/enhanced_enums_basic_test.dart +++ b/tests/language/enum/enhanced_enums_basic_test.dart @@ -104,8 +104,8 @@ void main() { Expect.equals(0, EnumAll.v1.instanceMethod()); Expect.identical(EnumAll.v4, EnumAll.v3 ^ EnumAll.v2); - Expect.equals("EnumAll.v1:EnumMixin:ObjectMixin:this", - EnumAll.v1.thisAndSuper()); + Expect.equals( + "EnumAll.v1:EnumMixin:ObjectMixin:this", EnumAll.v1.thisAndSuper()); // Which can reference type parameters. Expect.isTrue(EnumAll.v2.test(2)); // does `is T` with `T` being `int`. @@ -157,13 +157,18 @@ enum EnumPlainTrailingComma { // Also if using type parameters, mixins or interfaces. // It only matters whether there is something after the values. enum EnumNoSemicolon with ObjectMixin implements Interface { - v1, v2, v3 + v1, + v2, + v3 } - // Allows semicolon after values, even when not needed. // Without trailing comma. -enum EnumPlainSemicolon { v1, v2, v3; } +enum EnumPlainSemicolon { + v1, + v2, + v3; +} // With trailing comma. enum EnumPlainTrailingCommaSemicolon { @@ -202,6 +207,7 @@ enum EnumAll static late var sLateVarInit = v3; static EnumAll? sVar; static EnumAll sVarInit = v3; + /// Static getters, setters and methods static EnumAll get staticGetSet => v3; static set staticGetSet(EnumAll _) {} @@ -210,10 +216,13 @@ enum EnumAll // Constructors. // Generative, non-redirecting, unnamed. const EnumAll({T? y}) - : constructor = "unnamed", this.x = 0 as S, y = y ?? (0 as T); + : constructor = "unnamed", + this.x = 0 as S, + y = y ?? (0 as T); // Generative, non-redirecting, named. const EnumAll.named(this.x, {T? y, String? constructor}) - : constructor = constructor ?? "named", y = y ?? (0 as T); + : constructor = constructor ?? "named", + y = y ?? (0 as T); // Generative, redirecting. const EnumAll.renamed(S x, {T? y}) : this.named(x, y: y, constructor: "renamed"); @@ -266,6 +275,7 @@ extension EnumAllExtension on EnumAll { Expect.fail("Unreachable"); return "not"; } + String get extension => "extension"; } @@ -282,6 +292,7 @@ enum EnumNoUnnamedConstructor { enum NewNamedConstructor { v1; + const NewNamedConstructor.new(); } @@ -301,13 +312,16 @@ enum Canonical { v1(1), v2(1), v3(1); + final T value; const Canonical(this.value); } // Both `toString` and `index` are inherited from superclass. enum OverrideEnum { - v1, v2; + v1, + v2; + // Cannot override index int get superIndex => super.index; String toString() => "FakeString"; @@ -318,6 +332,7 @@ enum OverrideEnum { enum SelfRefEnum { e1(null), e2(e1); + final SelfRefEnum? previous; const SelfRefEnum(this.previous); } @@ -343,9 +358,7 @@ mixin GenericEnumMixin on Enum { String toString() => "${super.toString()}:EnumMixin<$T>"; } -abstract class Interface { - -} +abstract class Interface {} abstract class GenericInterface { // Implemented by mixins. diff --git a/tests/language/enum/enhanced_enums_subtype_error_test.dart b/tests/language/enum/enhanced_enums_subtype_error_test.dart index ae0be180099..728c227eb0d 100644 --- a/tests/language/enum/enhanced_enums_subtype_error_test.dart +++ b/tests/language/enum/enhanced_enums_subtype_error_test.dart @@ -150,7 +150,8 @@ abstract class ImplementsEnum implements MyEnum { // [analyzer] COMPILE_TIME_ERROR.IMPLEMENTS_NON_CLASS } -abstract class MixesInEnum with MyEnum { // It's not a mixin! +// It's not a mixin! +abstract class MixesInEnum with MyEnum { // ^ // [cfe] 'MyEnum' is an enum and can't be extended or implemented. // [cfe] Can't use 'MyEnum' as a mixin because it has constructors. diff --git a/tests/language/enum/enum_test.dart b/tests/language/enum/enum_test.dart index 4deb8619ac6..9678587951e 100644 --- a/tests/language/enum/enum_test.dart +++ b/tests/language/enum/enum_test.dart @@ -5,13 +5,18 @@ import 'package:expect/expect.dart'; enum Enum1 { _ } + enum Enum2 { A } + enum Enum3 { B, C } + enum Enum4 { D, E, } + enum Enum5 { F, G, H } + enum _Enum6 { I, _J } enum _IsNot { IsNot } diff --git a/tests/language/enum/is_keyword_runtime_test.dart b/tests/language/enum/is_keyword_runtime_test.dart index 2e9a471e218..3f24d63fb5d 100644 --- a/tests/language/enum/is_keyword_runtime_test.dart +++ b/tests/language/enum/is_keyword_runtime_test.dart @@ -8,6 +8,4 @@ // Test that `enum` is considered a keyword and therefore invalid as the name of // declarations. -main() { - -} +main() {} diff --git a/tests/language/enum/private_runtime_1_test.dart b/tests/language/enum/private_runtime_1_test.dart index 34af1267522..27b4b74c7ad 100644 --- a/tests/language/enum/private_runtime_1_test.dart +++ b/tests/language/enum/private_runtime_1_test.dart @@ -21,5 +21,4 @@ enum Enum1 { main() { Expect.equals('Enum1._A,Enum1._B', Enum1.values.join(',')); Expect.equals('Enum2._A,Enum2._B', Enum2.values.join(',')); - } diff --git a/tests/language/enum/private_runtime_test.dart b/tests/language/enum/private_runtime_test.dart index adc8d7a3743..e479dfd7255 100644 --- a/tests/language/enum/private_runtime_test.dart +++ b/tests/language/enum/private_runtime_test.dart @@ -20,6 +20,4 @@ enum Enum1 { main() { Expect.equals('Enum1._A,Enum1._B', Enum1.values.join(',')); - - } diff --git a/tests/language/named_arguments_anywhere/all_kinds_test.dart b/tests/language/named_arguments_anywhere/all_kinds_test.dart index 004796e11ab..059f3e6fa60 100644 --- a/tests/language/named_arguments_anywhere/all_kinds_test.dart +++ b/tests/language/named_arguments_anywhere/all_kinds_test.dart @@ -216,8 +216,8 @@ test(dynamic d, Function f, A a) { z: evaluate(false), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([1, false, "2", 3.14], () { - a.property(evaluate(1), - z: evaluate(false), evaluate("2"), w: evaluate(3.14)); + a.property( + evaluate(1), z: evaluate(false), evaluate("2"), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([false, 1, "2", 3.14], () { a.property( @@ -228,8 +228,8 @@ test(dynamic d, Function f, A a) { w: evaluate(3.14), evaluate(1), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2", false], () { - a.property(evaluate(1), - w: evaluate(3.14), evaluate("2"), z: evaluate(false)); + a.property( + evaluate(1), w: evaluate(3.14), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2"], () { a.property(evaluate(1), w: evaluate(3.14), evaluate("2")); @@ -306,8 +306,8 @@ test(dynamic d, Function f, A a) { z: evaluate(false), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([1, false, "2", 3.14], () { - A.redirFactory(evaluate(1), - z: evaluate(false), evaluate("2"), w: evaluate(3.14)); + A.redirFactory( + evaluate(1), z: evaluate(false), evaluate("2"), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([false, 1, "2", 3.14], () { A.redirFactory( @@ -318,8 +318,8 @@ test(dynamic d, Function f, A a) { w: evaluate(3.14), evaluate(1), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2", false], () { - A.redirFactory(evaluate(1), - w: evaluate(3.14), evaluate("2"), z: evaluate(false)); + A.redirFactory( + evaluate(1), w: evaluate(3.14), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2"], () { A.redirFactory(evaluate(1), w: evaluate(3.14), evaluate("2")); @@ -373,8 +373,8 @@ class Test extends A { : super(evaluate(1), evaluate("2"), z: evaluate(false), w: evaluate(3.14)); Test.super2() - : super(evaluate(1), - z: evaluate(false), evaluate("2"), w: evaluate(3.14)); + : super( + evaluate(1), z: evaluate(false), evaluate("2"), w: evaluate(3.14)); Test.super3() : super( z: evaluate(false), evaluate(1), evaluate("2"), w: evaluate(3.14)); @@ -382,8 +382,8 @@ class Test extends A { : super( w: evaluate(3.14), evaluate(1), evaluate("2"), z: evaluate(false)); Test.super5() - : super(evaluate(1), - w: evaluate(3.14), evaluate("2"), z: evaluate(false)); + : super( + evaluate(1), w: evaluate(3.14), evaluate("2"), z: evaluate(false)); Test.super6() : super(evaluate(1), w: evaluate(3.14), evaluate("2")); test() { @@ -392,8 +392,8 @@ class Test extends A { z: evaluate(false), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([1, false, "2", 3.14], () { - super.bar(evaluate(1), - z: evaluate(false), evaluate("2"), w: evaluate(3.14)); + super.bar( + evaluate(1), z: evaluate(false), evaluate("2"), w: evaluate(3.14)); }); runAndCheckEvaluationOrder([false, 1, "2", 3.14], () { super.bar( @@ -404,8 +404,8 @@ class Test extends A { w: evaluate(3.14), evaluate(1), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2", false], () { - super.bar(evaluate(1), - w: evaluate(3.14), evaluate("2"), z: evaluate(false)); + super.bar( + evaluate(1), w: evaluate(3.14), evaluate("2"), z: evaluate(false)); }); runAndCheckEvaluationOrder([1, 3.14, "2"], () { super.bar(evaluate(1), w: evaluate(3.14), evaluate("2")); diff --git a/tests/language_2/enum/enum_test.dart b/tests/language_2/enum/enum_test.dart index 73b3db61475..4cb22a15e2b 100644 --- a/tests/language_2/enum/enum_test.dart +++ b/tests/language_2/enum/enum_test.dart @@ -7,13 +7,18 @@ import 'package:expect/expect.dart'; enum Enum1 { _ } + enum Enum2 { A } + enum Enum3 { B, C } + enum Enum4 { D, E, } + enum Enum5 { F, G, H } + enum _Enum6 { I, _J } enum _IsNot { IsNot } diff --git a/tests/language_2/enum/is_keyword_runtime_test.dart b/tests/language_2/enum/is_keyword_runtime_test.dart index 8ea644f9637..4c8c400fa43 100644 --- a/tests/language_2/enum/is_keyword_runtime_test.dart +++ b/tests/language_2/enum/is_keyword_runtime_test.dart @@ -10,6 +10,4 @@ // Test that `enum` is considered a keyword and therefore invalid as the name of // declarations. -main() { - -} +main() {} diff --git a/tests/language_2/enum/private_runtime_1_test.dart b/tests/language_2/enum/private_runtime_1_test.dart index b2fbfeed218..9234818a922 100644 --- a/tests/language_2/enum/private_runtime_1_test.dart +++ b/tests/language_2/enum/private_runtime_1_test.dart @@ -23,5 +23,4 @@ enum Enum1 { main() { Expect.equals('Enum1._A,Enum1._B', Enum1.values.join(',')); Expect.equals('Enum2._A,Enum2._B', Enum2.values.join(',')); - } diff --git a/tests/language_2/enum/private_runtime_test.dart b/tests/language_2/enum/private_runtime_test.dart index ad44d807a51..ea9c19af3c4 100644 --- a/tests/language_2/enum/private_runtime_test.dart +++ b/tests/language_2/enum/private_runtime_test.dart @@ -22,6 +22,4 @@ enum Enum1 { main() { Expect.equals('Enum1._A,Enum1._B', Enum1.values.join(',')); - - }