diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 1f1e5dcc573..40641889484 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -11,7 +11,7 @@ "constraint, update this by running tools/generate_package_config.dart." ], "configVersion": 2, - "generated": "2021-04-05T08:58:24.237896", + "generated": "2021-04-06T14:39:06.316531", "generator": "tools/generate_package_config.dart", "packages": [ { diff --git a/CHANGELOG.md b/CHANGELOG.md index 51cf0650e1c..3fe24ae734b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,6 +80,13 @@ - unused_import ``` +#### dart format + +* Flatten indentation on nested chains of conditional (`?:`) operators. + +* Correct constructor initializer indentation after `required` named + parameters. + #### Linter Updated the Linter to `1.2.1`, which includes: diff --git a/DEPS b/DEPS index 2e25552d14d..380ac87dd7f 100644 --- a/DEPS +++ b/DEPS @@ -98,7 +98,7 @@ vars = { # and land the review. # # For more details, see https://github.com/dart-lang/sdk/issues/30164 - "dart_style_tag": "2cf810073e0cc7e7ea05d3de51830e6fa6d62924", + "dart_style_rev": "0067cfcc5bfa64cf59888c3fed34c71d1272555a", "chromedriver_tag": "83.0.4103.39", "browser_launcher_rev": "12ab9f351a44ac803de9bc17bb2180bb312a9dd7", @@ -331,7 +331,7 @@ deps = { Var("dart_root") + "/third_party/pkg/csslib": Var("dart_git") + "csslib.git" + "@" + Var("csslib_rev"), Var("dart_root") + "/third_party/pkg_tested/dart_style": - Var("dart_git") + "dart_style.git" + "@" + Var("dart_style_tag"), + Var("dart_git") + "dart_style.git" + "@" + Var("dart_style_rev"), Var("dart_root") + "/third_party/pkg/dart2js_info": Var("dart_git") + "dart2js_info.git" + "@" + Var("dart2js_info_rev"), Var("dart_root") + "/third_party/pkg/dartdoc": diff --git a/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline.expect b/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline.expect index c73f11fd881..3e39af0b6ec 100644 --- a/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline.expect @@ -1,7 +1,10 @@ class MyClass { final int a; final int b; - const MyClass(i1, i2) : a = (i1 >>> i2), b = (i1 >>> i2); + const MyClass(i1, i2) + : a = (i1 >>> i2), + b = (i1 >>> i2); } + test() {} main() {} diff --git a/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..827c2fb8624 --- /dev/null +++ b/pkg/front_end/testcases/general/constants/js_semantics/issue45376.dart.textual_outline_modelled.expect @@ -0,0 +1,10 @@ +class MyClass { + const MyClass(i1, i2) + : a = (i1 >>> i2), + b = (i1 >>> i2); + final int a; + final int b; +} + +main() {} +test() {} diff --git a/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline.expect b/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline.expect index 006bef5d5a2..186b763eca6 100644 --- a/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline.expect @@ -8,9 +8,11 @@ const dynamic d0 = 1 >> a; const dynamic d1 = 1 >> b; const dynamic d2 = 1 >>> a; const dynamic d3 = 1 >>> b; + class Class { final int a; const Class.doubleShift(i1, i2) : a = (i1 >> i2); const Class.tripleShift(i1, i2) : a = (i1 >>> i2); } + main() {} diff --git a/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..6fc8f425066 --- /dev/null +++ b/pkg/front_end/testcases/general/constants/js_semantics/on_double.dart.textual_outline_modelled.expect @@ -0,0 +1,17 @@ +class Class { + const Class.doubleShift(i1, i2) : a = (i1 >> i2); + const Class.tripleShift(i1, i2) : a = (i1 >>> i2); + final int a; +} + +const dynamic a = 1.0; +const dynamic b = 1.5; +const dynamic c0 = a >> 1; +const dynamic c1 = b >> 1; +const dynamic c2 = a >>> 1; +const dynamic c3 = b >>> 1; +const dynamic d0 = 1 >> a; +const dynamic d1 = 1 >> b; +const dynamic d2 = 1 >>> a; +const dynamic d3 = 1 >>> b; +main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline.expect index 2836a16cc04..1e1227fcc31 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline.expect @@ -1,4 +1,5 @@ class A {} + typedef B> = A; foo() {} B> bar1a() => throw 42; @@ -7,16 +8,19 @@ bar2a(B> x) => throw 42; bar2b(A>> x) => throw 42; bar3a>>() => throw 42; bar3b>>>() => throw 42; + class Bar1>> { B> barBar11() => throw 42; barBar12(B> x) => throw 42; barBar13>>() => throw 42; } + class Bar2>>> { A>> barBar21() => throw 42; barBar22(A>> x) => throw 42; barBar23>>>() => throw 42; } + typedef Baz1 = B>; typedef Baz2 = A>>; main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..b492b9f3673 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.textual_outline_modelled.expect @@ -0,0 +1,26 @@ +A>> bar1b() => throw 42; +B> bar1a() => throw 42; +bar2a(B> x) => throw 42; +bar2b(A>> x) => throw 42; +bar3a>>() => throw 42; +bar3b>>>() => throw 42; + +class A {} + +class Bar1>> { + B> barBar11() => throw 42; + barBar12(B> x) => throw 42; + barBar13>>() => throw 42; +} + +class Bar2>>> { + A>> barBar21() => throw 42; + barBar22(A>> x) => throw 42; + barBar23>>>() => throw 42; +} + +foo() {} +main() {} +typedef B> = A; +typedef Baz1 = B>; +typedef Baz2 = A>>; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..5455c3cc558 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.textual_outline_modelled.expect @@ -0,0 +1,5 @@ +foo() {} +main() {} +typedef A = B; +typedef B = C; +typedef C = X; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline.expect index 6c19416e350..c1f1ec1cec1 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline.expect @@ -1,5 +1,6 @@ import 'dart:async'; import 'issue41501_lib.dart'; + typedef AAliasNonNullable = A; typedef AAliasNullable = A?; test() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..ed74116dc49 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart.textual_outline_modelled.expect @@ -0,0 +1,7 @@ +import 'dart:async'; +import 'issue41501_lib.dart'; + +main() {} +test() {} +typedef AAliasNonNullable = A; +typedef AAliasNullable = A?; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline.expect index 611ce04998a..68bc621a08d 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline.expect @@ -1,8 +1,11 @@ class A> {} + typedef B> = A; + class A2> { factory A2() => throw 42; } + typedef B2> = A2; foo() {} main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..cfc90068af7 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue42446.dart.textual_outline_modelled.expect @@ -0,0 +1,10 @@ +class A> {} + +class A2> { + factory A2() => throw 42; +} + +foo() {} +main() {} +typedef B> = A; +typedef B2> = A2; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline.expect index 08b1c6f4d91..bbd084e0b02 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline.expect @@ -2,9 +2,12 @@ class A { factory A() = BAlias; factory A.named() = BAlias.named; } + typedef BAlias = B; + class B implements A { B(); B.named(); } + main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..c41fa7b9672 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.textual_outline_modelled.expect @@ -0,0 +1,12 @@ +class A { + factory A() = BAlias; + factory A.named() = BAlias.named; +} + +class B implements A { + B(); + B.named(); +} + +main() {} +typedef BAlias = B; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline.expect index daa08cb3683..4172321daf4 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline.expect @@ -1,15 +1,20 @@ Type? _capturedTypeArgument; X captureTypeArgument() {} + class A> {} + typedef C> = A; void topLevel1>(A Function() g) => g(); void topLevel2>(C Function() g) => g(); + class Class { void instance1>(A Function() g) => g(); void instance2>(C Function() g) => g(); void test() {} } + class Subclass extends Class { void test() {} } + main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..0f694763314 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45464.dart.textual_outline_modelled.expect @@ -0,0 +1,19 @@ +Type? _capturedTypeArgument; +X captureTypeArgument() {} + +class A> {} + +class Class { + void instance1>(A Function() g) => g(); + void instance2>(C Function() g) => g(); + void test() {} +} + +class Subclass extends Class { + void test() {} +} + +main() {} +typedef C> = A; +void topLevel1>(A Function() g) => g(); +void topLevel2>(C Function() g) => g(); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline.expect index 35e4a775086..d25a92abcd1 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline.expect @@ -1,3 +1,4 @@ class A> {} + typedef AAlias = A; void main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..d25a92abcd1 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45491.dart.textual_outline_modelled.expect @@ -0,0 +1,4 @@ +class A> {} + +typedef AAlias = A; +void main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline.expect index 0d8eec52c4f..a5f4a20f77e 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline.expect @@ -1,4 +1,5 @@ class C {} + typedef G = X Function(X); typedef A>> = C; test() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..edec24ef06f --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519.dart.textual_outline_modelled.expect @@ -0,0 +1,6 @@ +class C {} + +main() {} +test() {} +typedef A>> = C; +typedef G = X Function(X); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline.expect index 329c51298d0..acb7e9b8262 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline.expect @@ -3,11 +3,13 @@ class C { C.foo() {} factory C.bar() = C; } + class D { D(); factory D.foo() => new D(); factory D.bar() = D; } + typedef G = X Function(X); typedef A>> = C; typedef B>> = D; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..e83da8e70ad --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.textual_outline_modelled.expect @@ -0,0 +1,17 @@ +class C { + C.foo() {} + factory C() => new C.foo(); + factory C.bar() = C; +} + +class D { + D(); + factory D.bar() = D; + factory D.foo() => new D(); +} + +main() {} +test() {} +typedef A>> = C; +typedef B>> = D; +typedef G = X Function(X); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect index fbfa19f11cc..1c0f31126f8 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect @@ -1,26 +1,42 @@ import 'nullable_supertypes.dart' as prefix; + class A {} + class B {} + class C {} + typedef AAlias = A?; typedef BAlias = B?; typedef CAlias = C?; typedef TAlias = T?; + class C1 extends AAlias {} + class C2 implements AAlias {} + class C3 = A with BAlias; class C4 = A with B implements CAlias; + class C5 extends A with BAlias {} + mixin M1 on AAlias {} mixin M2 on A, BAlias {} mixin M3 on A implements BAlias {} + class D1 extends TAlias {} + class D1a extends prefix.TAlias {} + class D1b extends TAlias {} + class D2 implements TAlias {} + class D3 = A with TAlias; class D4 = A with B implements TAlias; + class D5 extends A with TAlias {} + mixin N1 on TAlias {} mixin N1a on prefix.TAlias {} mixin N1b on TAlias {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..85ec1fa85aa --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect @@ -0,0 +1,43 @@ +import 'nullable_supertypes.dart' as prefix; + +class A {} + +class B {} + +class C {} + +class C1 extends AAlias {} + +class C2 implements AAlias {} + +class C3 = A with BAlias; +class C4 = A with B implements CAlias; + +class C5 extends A with BAlias {} + +class D1 extends TAlias {} + +class D1a extends prefix.TAlias {} + +class D1b extends TAlias {} + +class D2 implements TAlias {} + +class D3 = A with TAlias; +class D4 = A with B implements TAlias; + +class D5 extends A with TAlias {} + +main() {} +mixin M1 on AAlias {} +mixin M2 on A, BAlias {} +mixin M3 on A implements BAlias {} +mixin N1 on TAlias {} +mixin N1a on prefix.TAlias {} +mixin N1b on TAlias {} +mixin N2 on A, TAlias {} +mixin N3 on A implements TAlias {} +typedef AAlias = A?; +typedef BAlias = B?; +typedef CAlias = C?; +typedef TAlias = T?; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline.expect index 1eab745d0b1..048066bf81c 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline.expect @@ -1,4 +1,5 @@ class C {} + typedef A = C; foo() {} main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..11210728788 --- /dev/null +++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.textual_outline_modelled.expect @@ -0,0 +1,5 @@ +class C {} + +foo() {} +main() {} +typedef A = C; diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status index 90a00d2c4a8..408c9ce3a90 100644 --- a/pkg/front_end/testcases/textual_outline.status +++ b/pkg/front_end/testcases/textual_outline.status @@ -30,10 +30,8 @@ general/annotation_eof: FormatterCrash general/bad_setter_abstract: FormatterCrash general/bug31124: FormatterCrash general/clone_function_type: FormatterCrash -general/constants/js_semantics/issue45376: FormatterCrash general/constants/js_semantics/number_folds: FormatterCrash general/constants/js_semantics/number_folds_opt_out: FormatterCrash -general/constants/js_semantics/on_double: FormatterCrash general/constants/number_folds: FormatterCrash general/constants/number_folds_opt_out: FormatterCrash general/constants/various: FormatterCrash @@ -129,18 +127,7 @@ nnbd/uninitialized_non_nullable_late_fields: FormatterCrash nnbd_mixed/inheritance_from_opt_in: FormatterCrash nnbd_mixed/issue41597: FormatterCrash nnbd_mixed/null_safety_invalid_language_version: FormatterCrash -nonfunction_type_aliases/aliased_checks: FormatterCrash -nonfunction_type_aliases/aliased_checks_in_typedef: FormatterCrash -nonfunction_type_aliases/issue41501: FormatterCrash -nonfunction_type_aliases/issue42446: FormatterCrash -nonfunction_type_aliases/issue45051: FormatterCrash -nonfunction_type_aliases/issue45464: FormatterCrash -nonfunction_type_aliases/issue45491: FormatterCrash -nonfunction_type_aliases/issue45519: FormatterCrash -nonfunction_type_aliases/issue45519_2: FormatterCrash -nonfunction_type_aliases/nullable_supertypes: FormatterCrash nonfunction_type_aliases/old_version: FormatterCrash -nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls: FormatterCrash rasta/bad_redirection: FormatterCrash rasta/issue_000032: FormatterCrash rasta/issue_000034: FormatterCrash