diff --git a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.expect b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.expect index 24013d9ed84..86b85ce90da 100644 --- a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.expect @@ -6,7 +6,7 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; } @@ -14,11 +14,11 @@ import "dart:core" as core; [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.modular.expect index 24013d9ed84..86b85ce90da 100644 --- a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.modular.expect @@ -6,7 +6,7 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; } @@ -14,11 +14,11 @@ import "dart:core" as core; [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.outline.expect index 3fa65fb5895..bf5fecc5694 100644 --- a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.outline.expect @@ -6,15 +6,15 @@ import "dart:core" as core; [493] field core::String? s; [503] field core::int? i; [516] field core::double? d; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 [-1] ; } [528]class X2 extends core::Object { [543] field core::String? s2; [554] field core::int? i; [567] field core::double? d; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 [-1] ; } -[222]static method method([229] dynamic o) → void +[222]static method [228] [469] method([229] dynamic o) → void [-1] ; diff --git a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.transformed.expect index 24013d9ed84..86b85ce90da 100644 --- a/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/case_variables_name_overlap.dart.strong.transformed.expect @@ -6,7 +6,7 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; } @@ -14,11 +14,11 @@ import "dart:core" as core; [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.expect b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.expect index 8f89e30d6bd..42a35c0b4d3 100644 --- a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.expect @@ -6,23 +6,23 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; -[478] static synthetic method _#new#tearOff() → self::X1 +[478] static synthetic method [478] [478] _#new#tearOff() → self::X1 [478] return [478] [478] new self::X1::• [478](); } [528]class X2 extends core::Object { [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; -[528] static synthetic method _#new#tearOff() → self::X2 +[528] static synthetic method [528] [528] _#new#tearOff() → self::X2 [528] return [528] [528] new self::X2::• [528](); } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.modular.expect index 8f89e30d6bd..42a35c0b4d3 100644 --- a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.modular.expect @@ -6,23 +6,23 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; -[478] static synthetic method _#new#tearOff() → self::X1 +[478] static synthetic method [478] [478] _#new#tearOff() → self::X1 [478] return [478] [478] new self::X1::• [478](); } [528]class X2 extends core::Object { [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; -[528] static synthetic method _#new#tearOff() → self::X2 +[528] static synthetic method [528] [528] _#new#tearOff() → self::X2 [528] return [528] [528] new self::X2::• [528](); } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.outline.expect index 3c0a2092299..7668fe2cdc6 100644 --- a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.outline.expect @@ -6,19 +6,19 @@ import "dart:core" as core; [493] field core::String? s; [503] field core::int? i; [516] field core::double? d; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 [-1] ; -[478] static synthetic method _#new#tearOff() → self::X1 +[478] static synthetic method [478] [478] _#new#tearOff() → self::X1 [478] return [478] [478] new self::X1::• [478](); } [528]class X2 extends core::Object { [543] field core::String? s2; [554] field core::int? i; [567] field core::double? d; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 [-1] ; -[528] static synthetic method _#new#tearOff() → self::X2 +[528] static synthetic method [528] [528] _#new#tearOff() → self::X2 [528] return [528] [528] new self::X2::• [528](); } -[222]static method method([229] dynamic o) → void +[222]static method [228] [469] method([229] dynamic o) → void [-1] ; diff --git a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.transformed.expect index 8f89e30d6bd..42a35c0b4d3 100644 --- a/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/ddc/case_variables_name_overlap.dart.strong.transformed.expect @@ -6,23 +6,23 @@ import "dart:core" as core; [493] field core::String? s = [-1] [-1] null; [503] field core::int? i = [-1] [-1] null; [516] field core::double? d = [-1] [-1] null; -[478] synthetic constructor •() → self::X1 +[478] synthetic constructor [-1] [-1] •() → self::X1 : [-1] super core::Object::• [-1]() [-1] ; -[478] static synthetic method _#new#tearOff() → self::X1 +[478] static synthetic method [478] [478] _#new#tearOff() → self::X1 [478] return [478] [478] new self::X1::• [478](); } [528]class X2 extends core::Object { [543] field core::String? s2 = [-1] [-1] null; [554] field core::int? i = [-1] [-1] null; [567] field core::double? d = [-1] [-1] null; -[528] synthetic constructor •() → self::X2 +[528] synthetic constructor [-1] [-1] •() → self::X2 : [-1] super core::Object::• [-1]() [-1] ; -[528] static synthetic method _#new#tearOff() → self::X2 +[528] static synthetic method [528] [528] _#new#tearOff() → self::X2 [528] return [528] [528] new self::X2::• [528](); } -[222]static method method([229] dynamic o) → void { +[222]static method [228] [469] method([229] dynamic o) → void { [236] #L1: [236] { [244] [244] final synthesized dynamic #0#0 = [244] [244] o; diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart b/pkg/front_end/testcases/offsets/ddc/external_field.dart new file mode 100644 index 00000000000..a6c2e8635b9 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart @@ -0,0 +1,10 @@ +// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:js_interop'; + +extension type Foo._(JSObject _) implements JSObject { + @JS('foo') + external bool? bar; +} diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.expect new file mode 100644 index 00000000000..8f986c95933 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.expect @@ -0,0 +1,35 @@ +library; +import self as self; +import "dart:js_interop" as js_; +import "dart:core" as core; + +[217]import "dart:js_interop"; + +[259]extension type Foo(js_::JSObject /* erasure=dart._interceptors::JSObject */ _) implements js_::JSObject /* erasure=dart._interceptors::JSObject */ { +[274] abstract extension-type-member representation-field get [-1] [-1] _() → js_::JSObject /* erasure=dart._interceptors::JSObject */; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[263]static extension-type-member method [264] [264] Foo|constructor#_([274] wildcard js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ { +[274] [274] lowered final self::Foo /* erasure=dart._interceptors::JSObject */ #this = [274] [274] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[263]static extension-type-member synthetic method [263] [263] Foo|constructor#_#_#tearOff([274] js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ +[263] return [263] [263] self::Foo|constructor#_ [263]([263] _#wc0#formal); +[329]@[302] [302] #C2 +external static extension-type-member method [-1] [-1] Foo|get#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this) → core::bool?; +[329]@[302] [302] #C2 +external static extension-type-member method [329] [332] Foo|set#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this, [329] synthesized core::bool? #externalFieldValue) → void; + +constants { + #C1 = "foo" + #C2 = js_::JS {name:#C1} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///external_field.dart: +- JS. (from org-dartlang-sdk:///lib/js_interop/js_interop.dart) +- Object. (from org-dartlang-sdk:///lib/core/object.dart) diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.modular.expect new file mode 100644 index 00000000000..8f986c95933 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.modular.expect @@ -0,0 +1,35 @@ +library; +import self as self; +import "dart:js_interop" as js_; +import "dart:core" as core; + +[217]import "dart:js_interop"; + +[259]extension type Foo(js_::JSObject /* erasure=dart._interceptors::JSObject */ _) implements js_::JSObject /* erasure=dart._interceptors::JSObject */ { +[274] abstract extension-type-member representation-field get [-1] [-1] _() → js_::JSObject /* erasure=dart._interceptors::JSObject */; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[263]static extension-type-member method [264] [264] Foo|constructor#_([274] wildcard js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ { +[274] [274] lowered final self::Foo /* erasure=dart._interceptors::JSObject */ #this = [274] [274] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[263]static extension-type-member synthetic method [263] [263] Foo|constructor#_#_#tearOff([274] js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ +[263] return [263] [263] self::Foo|constructor#_ [263]([263] _#wc0#formal); +[329]@[302] [302] #C2 +external static extension-type-member method [-1] [-1] Foo|get#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this) → core::bool?; +[329]@[302] [302] #C2 +external static extension-type-member method [329] [332] Foo|set#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this, [329] synthesized core::bool? #externalFieldValue) → void; + +constants { + #C1 = "foo" + #C2 = js_::JS {name:#C1} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///external_field.dart: +- JS. (from org-dartlang-sdk:///lib/js_interop/js_interop.dart) +- Object. (from org-dartlang-sdk:///lib/core/object.dart) diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.outline.expect new file mode 100644 index 00000000000..692af7cf86f --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.outline.expect @@ -0,0 +1,28 @@ +library; +import self as self; +import "dart:js_interop" as js_; +import "dart:core" as core; + +[217]import "dart:js_interop"; + +[259]extension type Foo(js_::JSObject /* erasure=dart._interceptors::JSObject */ _) implements js_::JSObject /* erasure=dart._interceptors::JSObject */ { +[274] abstract extension-type-member representation-field get [-1] [-1] _() → js_::JSObject /* erasure=dart._interceptors::JSObject */; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[263]static extension-type-member method [264] [264] Foo|constructor#_([274] wildcard js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ +[-1] ; +[263]static extension-type-member synthetic method [263] [263] Foo|constructor#_#_#tearOff([274] js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ +[263] return [263] [263] self::Foo|constructor#_ [263]([263] _#wc0#formal); +[329]@js_::JS::•([305] "foo") +external static extension-type-member method [-1] [-1] Foo|get#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this) → core::bool?; +[329]@js_::JS::•([305] "foo") +external static extension-type-member method [329] [332] Foo|set#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this, [329] synthesized core::bool? #externalFieldValue) → void; + + +Extra constant evaluation status: +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///external_field.dart:8:4 -> InstanceConstant(const JS{JS.name: "foo"}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///external_field.dart:8:4 -> InstanceConstant(const JS{JS.name: "foo"}) +Extra constant evaluation: evaluated: 4, effectively constant: 2 diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.transformed.expect new file mode 100644 index 00000000000..8f986c95933 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.strong.transformed.expect @@ -0,0 +1,35 @@ +library; +import self as self; +import "dart:js_interop" as js_; +import "dart:core" as core; + +[217]import "dart:js_interop"; + +[259]extension type Foo(js_::JSObject /* erasure=dart._interceptors::JSObject */ _) implements js_::JSObject /* erasure=dart._interceptors::JSObject */ { +[274] abstract extension-type-member representation-field get [-1] [-1] _() → js_::JSObject /* erasure=dart._interceptors::JSObject */; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[263]static extension-type-member method [264] [264] Foo|constructor#_([274] wildcard js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ { +[274] [274] lowered final self::Foo /* erasure=dart._interceptors::JSObject */ #this = [274] [274] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[263]static extension-type-member synthetic method [263] [263] Foo|constructor#_#_#tearOff([274] js_::JSObject /* erasure=dart._interceptors::JSObject */ _#wc0#formal) → self::Foo /* erasure=dart._interceptors::JSObject */ +[263] return [263] [263] self::Foo|constructor#_ [263]([263] _#wc0#formal); +[329]@[302] [302] #C2 +external static extension-type-member method [-1] [-1] Foo|get#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this) → core::bool?; +[329]@[302] [302] #C2 +external static extension-type-member method [329] [332] Foo|set#bar([329] lowered js_::JSObject /* erasure=dart._interceptors::JSObject */ #this, [329] synthesized core::bool? #externalFieldValue) → void; + +constants { + #C1 = "foo" + #C2 = js_::JS {name:#C1} +} + + +Constructor coverage from constants: +org-dartlang-testcase:///external_field.dart: +- JS. (from org-dartlang-sdk:///lib/js_interop/js_interop.dart) +- Object. (from org-dartlang-sdk:///lib/core/object.dart) diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline.expect new file mode 100644 index 00000000000..35b4f6f0c80 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline.expect @@ -0,0 +1,6 @@ +import 'dart:js_interop'; + +extension type Foo._(JSObject _) implements JSObject { + @JS('foo') + external bool? bar; +} diff --git a/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..35b4f6f0c80 --- /dev/null +++ b/pkg/front_end/testcases/offsets/ddc/external_field.dart.textual_outline_modelled.expect @@ -0,0 +1,6 @@ +import 'dart:js_interop'; + +extension type Foo._(JSObject _) implements JSObject { + @JS('foo') + external bool? bar; +} diff --git a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.expect b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.modular.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.outline.expect index 20a6a1ef82e..651be44cfd0 100644 --- a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.outline.expect @@ -1,5 +1,5 @@ library; import self as self; -[217]static method method([224] dynamic o) → dynamic +[217]static method [223] [325] method([224] dynamic o) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.transformed.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/ddc/pattern_switch.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.expect b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.modular.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.outline.expect index 20a6a1ef82e..7140d9d78d5 100644 --- a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.outline.expect @@ -1,5 +1,5 @@ library; import self as self; -[217]static method method([224] dynamic o) → dynamic +[217]static method [223] [404] method([224] dynamic o) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.transformed.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/ddc/shared_case_variables.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.expect b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.expect index e766eac9f3f..3657b3ad167 100644 --- a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.expect @@ -3,7 +3,7 @@ import self as self; import "dart:core" as core; import "dart:collection" as col; -[222]static method main([240] core::List args) → void { +[222]static method [226] [973] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.modular.expect index e766eac9f3f..3657b3ad167 100644 --- a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.modular.expect @@ -3,7 +3,7 @@ import self as self; import "dart:core" as core; import "dart:collection" as col; -[222]static method main([240] core::List args) → void { +[222]static method [226] [973] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.outline.expect index 4dd39b3f73f..013d264a7b2 100644 --- a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.outline.expect @@ -2,5 +2,5 @@ library; import self as self; import "dart:core" as core; -[222]static method main([240] core::List args) → void +[222]static method [226] [973] main([240] core::List args) → void [-1] ; diff --git a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.transformed.expect index e766eac9f3f..3657b3ad167 100644 --- a/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/ddc/spreads.dart.strong.transformed.expect @@ -3,7 +3,7 @@ import self as self; import "dart:core" as core; import "dart:collection" as col; -[222]static method main([240] core::List args) → void { +[222]static method [226] [973] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/external_field.dart b/pkg/front_end/testcases/offsets/external_field.dart new file mode 100644 index 00000000000..dd12f846aa8 --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart @@ -0,0 +1,7 @@ +// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +extension type Foo._(Duration _) implements Duration { + external int bar; +} diff --git a/pkg/front_end/testcases/offsets/external_field.dart.strong.expect b/pkg/front_end/testcases/offsets/external_field.dart.strong.expect new file mode 100644 index 00000000000..a14676c3049 --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.strong.expect @@ -0,0 +1,19 @@ +library; +import self as self; +import "dart:core" as core; + +[232]extension type Foo(core::Duration _) implements core::Duration { +[247] abstract extension-type-member representation-field get [-1] [-1] _() → core::Duration; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[236]static extension-type-member method [237] [237] Foo|constructor#_([247] wildcard core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ { +[247] [247] lowered final self::Foo /* erasure=core::Duration */ #this = [247] [247] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[236]static extension-type-member synthetic method [236] [236] Foo|constructor#_#_#tearOff([247] core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ +[236] return [236] [236] self::Foo|constructor#_ [236]([236] _#wc0#formal); +[287]external static extension-type-member method [-1] [-1] Foo|get#bar([287] lowered core::Duration #this) → core::int; +[287]external static extension-type-member method [287] [290] Foo|set#bar([287] lowered core::Duration #this, [287] synthesized core::int #externalFieldValue) → void; diff --git a/pkg/front_end/testcases/offsets/external_field.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/external_field.dart.strong.modular.expect new file mode 100644 index 00000000000..a14676c3049 --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.strong.modular.expect @@ -0,0 +1,19 @@ +library; +import self as self; +import "dart:core" as core; + +[232]extension type Foo(core::Duration _) implements core::Duration { +[247] abstract extension-type-member representation-field get [-1] [-1] _() → core::Duration; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[236]static extension-type-member method [237] [237] Foo|constructor#_([247] wildcard core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ { +[247] [247] lowered final self::Foo /* erasure=core::Duration */ #this = [247] [247] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[236]static extension-type-member synthetic method [236] [236] Foo|constructor#_#_#tearOff([247] core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ +[236] return [236] [236] self::Foo|constructor#_ [236]([236] _#wc0#formal); +[287]external static extension-type-member method [-1] [-1] Foo|get#bar([287] lowered core::Duration #this) → core::int; +[287]external static extension-type-member method [287] [290] Foo|set#bar([287] lowered core::Duration #this, [287] synthesized core::int #externalFieldValue) → void; diff --git a/pkg/front_end/testcases/offsets/external_field.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/external_field.dart.strong.outline.expect new file mode 100644 index 00000000000..f1981ac8e07 --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.strong.outline.expect @@ -0,0 +1,17 @@ +library; +import self as self; +import "dart:core" as core; + +[232]extension type Foo(core::Duration _) implements core::Duration { +[247] abstract extension-type-member representation-field get [-1] [-1] _() → core::Duration; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[236]static extension-type-member method [237] [237] Foo|constructor#_([247] wildcard core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ +[-1] ; +[236]static extension-type-member synthetic method [236] [236] Foo|constructor#_#_#tearOff([247] core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ +[236] return [236] [236] self::Foo|constructor#_ [236]([236] _#wc0#formal); +[287]external static extension-type-member method [-1] [-1] Foo|get#bar([287] lowered core::Duration #this) → core::int; +[287]external static extension-type-member method [287] [290] Foo|set#bar([287] lowered core::Duration #this, [287] synthesized core::int #externalFieldValue) → void; diff --git a/pkg/front_end/testcases/offsets/external_field.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/external_field.dart.strong.transformed.expect new file mode 100644 index 00000000000..a14676c3049 --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.strong.transformed.expect @@ -0,0 +1,19 @@ +library; +import self as self; +import "dart:core" as core; + +[232]extension type Foo(core::Duration _) implements core::Duration { +[247] abstract extension-type-member representation-field get [-1] [-1] _() → core::Duration; + get bar = self::Foo|get#bar; + set bar = self::Foo|set#bar; + constructor _ = self::Foo|constructor#_; + constructor tearoff _ = self::Foo|constructor#_#_#tearOff; +} +[236]static extension-type-member method [237] [237] Foo|constructor#_([247] wildcard core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ { +[247] [247] lowered final self::Foo /* erasure=core::Duration */ #this = [247] [247] _#wc0#formal; +[-1] return [-1] [-1] #this; +} +[236]static extension-type-member synthetic method [236] [236] Foo|constructor#_#_#tearOff([247] core::Duration _#wc0#formal) → self::Foo /* erasure=core::Duration */ +[236] return [236] [236] self::Foo|constructor#_ [236]([236] _#wc0#formal); +[287]external static extension-type-member method [-1] [-1] Foo|get#bar([287] lowered core::Duration #this) → core::int; +[287]external static extension-type-member method [287] [290] Foo|set#bar([287] lowered core::Duration #this, [287] synthesized core::int #externalFieldValue) → void; diff --git a/pkg/front_end/testcases/offsets/external_field.dart.textual_outline.expect b/pkg/front_end/testcases/offsets/external_field.dart.textual_outline.expect new file mode 100644 index 00000000000..e7444a4d7af --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.textual_outline.expect @@ -0,0 +1,3 @@ +extension type Foo._(Duration _) implements Duration { + external int bar; +} diff --git a/pkg/front_end/testcases/offsets/external_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/offsets/external_field.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..e7444a4d7af --- /dev/null +++ b/pkg/front_end/testcases/offsets/external_field.dart.textual_outline_modelled.expect @@ -0,0 +1,3 @@ +extension type Foo._(Duration _) implements Duration { + external int bar; +} diff --git a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.expect b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.modular.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.outline.expect index 20a6a1ef82e..651be44cfd0 100644 --- a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.outline.expect @@ -1,5 +1,5 @@ library; import self as self; -[217]static method method([224] dynamic o) → dynamic +[217]static method [223] [325] method([224] dynamic o) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.transformed.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/forced_all_late_lowering/pattern_switch.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.expect b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.expect index 387c63608dc..f2cd1eb3a20 100644 --- a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([229] core::List list) → dynamic { +[217]static method [223] [357] method([229] core::List list) → dynamic { [239] { [249] [249] hoisted dynamic a; [252] [252] hoisted dynamic b; diff --git a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.modular.expect index 387c63608dc..f2cd1eb3a20 100644 --- a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([229] core::List list) → dynamic { +[217]static method [223] [357] method([229] core::List list) → dynamic { [239] { [249] [249] hoisted dynamic a; [252] [252] hoisted dynamic b; diff --git a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.outline.expect index f2e89422941..985c5223af4 100644 --- a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.outline.expect @@ -2,5 +2,5 @@ library; import self as self; import "dart:core" as core; -[217]static method method([229] core::List list) → dynamic +[217]static method [223] [357] method([229] core::List list) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.transformed.expect index bbbc408b1bb..35716adfc64 100644 --- a/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/pattern_for_loop.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([229] core::List list) → dynamic { +[217]static method [223] [357] method([229] core::List list) → dynamic { [239] { [249] [249] hoisted dynamic a; [252] [252] hoisted dynamic b; diff --git a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.expect b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.modular.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.outline.expect index 20a6a1ef82e..651be44cfd0 100644 --- a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.outline.expect @@ -1,5 +1,5 @@ library; import self as self; -[217]static method method([224] dynamic o) → dynamic +[217]static method [223] [325] method([224] dynamic o) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.transformed.expect index d999fc3e3c2..c0c60a02368 100644 --- a/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/pattern_switch.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [325] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.expect b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.modular.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.modular.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.outline.expect index 20a6a1ef82e..7140d9d78d5 100644 --- a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.outline.expect @@ -1,5 +1,5 @@ library; import self as self; -[217]static method method([224] dynamic o) → dynamic +[217]static method [223] [404] method([224] dynamic o) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.transformed.expect index 6f28cfa337c..c9f5c65d84e 100644 --- a/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/shared_case_variables.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library; import self as self; import "dart:core" as core; -[217]static method method([224] dynamic o) → dynamic { +[217]static method [223] [404] method([224] dynamic o) → dynamic { [231] #L1: [231] { [239] [239] final synthesized dynamic #0#0 = [239] [239] o; diff --git a/pkg/front_end/testcases/offsets/spreads.dart.strong.expect b/pkg/front_end/testcases/offsets/spreads.dart.strong.expect index 210c9e97e35..fd78dae5d3f 100644 --- a/pkg/front_end/testcases/offsets/spreads.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/spreads.dart.strong.expect @@ -3,7 +3,7 @@ import self as self; import "dart:core" as core; import "dart:collection" as col; -[222]static method main([240] core::List args) → void { +[222]static method [226] [1206] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/spreads.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/spreads.dart.strong.modular.expect index 210c9e97e35..fd78dae5d3f 100644 --- a/pkg/front_end/testcases/offsets/spreads.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/spreads.dart.strong.modular.expect @@ -3,7 +3,7 @@ import self as self; import "dart:core" as core; import "dart:collection" as col; -[222]static method main([240] core::List args) → void { +[222]static method [226] [1206] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/spreads.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/spreads.dart.strong.outline.expect index 4dd39b3f73f..b68bd6445ff 100644 --- a/pkg/front_end/testcases/offsets/spreads.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/spreads.dart.strong.outline.expect @@ -2,5 +2,5 @@ library; import self as self; import "dart:core" as core; -[222]static method main([240] core::List args) → void +[222]static method [226] [1206] main([240] core::List args) → void [-1] ; diff --git a/pkg/front_end/testcases/offsets/spreads.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/spreads.dart.strong.transformed.expect index 0113511071a..6593a9bbdf2 100644 --- a/pkg/front_end/testcases/offsets/spreads.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/spreads.dart.strong.transformed.expect @@ -4,7 +4,7 @@ import "dart:core" as core; import "dart:collection" as col; import "dart:_compact_hash" as _co; -[222]static method main([240] core::List args) → void { +[222]static method [226] [1206] main([240] core::List args) → void { [262] [262] core::Set fooSet = [271] [271] block { [271] [271] final core::Set #t1 = [271] [271] col::LinkedHashSet::of [271]([280] args); [290] [290] [290] [-1] [-1] #t1.{core::Set::add}{Invariant}[-1]([290] "hello"){(core::String) → core::bool}; diff --git a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.expect b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.expect index 4784b9b87c5..ce34a112d34 100644 --- a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.expect @@ -5,23 +5,23 @@ import "dart:core" as core; [217]import "dart:math" show pi; [261]abstract class Shape extends core::Object { -[261] synthetic constructor •() → self::Shape +[261] synthetic constructor [-1] [-1] •() → self::Shape : [-1] super core::Object::• [-1]() [-1] ; } [277]class Square extends core::Object implements self::Shape { [318] final field core::double length; -[328] constructor •([340] core::double length) → self::Square +[328] constructor [334] [347] •([340] core::double length) → self::Square : [340] self::Square::length = [340] [340] length, [328] super core::Object::• [328]() [-1] ; } [358]class Circle extends core::Object implements self::Shape { [399] final field core::double radius; -[409] constructor •([421] core::double radius) → self::Circle +[409] constructor [415] [428] •([421] core::double radius) → self::Circle : [421] self::Circle::radius = [421] [421] radius, [409] super core::Object::• [409]() [-1] ; } -[440]static method calculateArea([460] self::Shape shape) → core::double +[440]static method [453] [708] calculateArea([460] self::Shape shape) → core::double [470] return [470] [470] block { [-1] [-1] core::double #t1; [478] [478] final synthesized self::Shape #0#0 = [478] [478] shape; @@ -67,7 +67,7 @@ import "dart:core" as core; } } } =>[-1] [-1] #t1; -[711]static method testMain() → dynamic { +[711]static method [719] [755] testMain() → dynamic { [726] [726] [726] self::calculateArea [739]([740] new self::Circle::• [746]([747] -123.0)); } diff --git a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.modular.expect index 4784b9b87c5..ce34a112d34 100644 --- a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.modular.expect @@ -5,23 +5,23 @@ import "dart:core" as core; [217]import "dart:math" show pi; [261]abstract class Shape extends core::Object { -[261] synthetic constructor •() → self::Shape +[261] synthetic constructor [-1] [-1] •() → self::Shape : [-1] super core::Object::• [-1]() [-1] ; } [277]class Square extends core::Object implements self::Shape { [318] final field core::double length; -[328] constructor •([340] core::double length) → self::Square +[328] constructor [334] [347] •([340] core::double length) → self::Square : [340] self::Square::length = [340] [340] length, [328] super core::Object::• [328]() [-1] ; } [358]class Circle extends core::Object implements self::Shape { [399] final field core::double radius; -[409] constructor •([421] core::double radius) → self::Circle +[409] constructor [415] [428] •([421] core::double radius) → self::Circle : [421] self::Circle::radius = [421] [421] radius, [409] super core::Object::• [409]() [-1] ; } -[440]static method calculateArea([460] self::Shape shape) → core::double +[440]static method [453] [708] calculateArea([460] self::Shape shape) → core::double [470] return [470] [470] block { [-1] [-1] core::double #t1; [478] [478] final synthesized self::Shape #0#0 = [478] [478] shape; @@ -67,7 +67,7 @@ import "dart:core" as core; } } } =>[-1] [-1] #t1; -[711]static method testMain() → dynamic { +[711]static method [719] [755] testMain() → dynamic { [726] [726] [726] self::calculateArea [739]([740] new self::Circle::• [746]([747] -123.0)); } diff --git a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.outline.expect index ff6d44dc875..0b52de5cacd 100644 --- a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.outline.expect @@ -5,20 +5,20 @@ import "dart:core" as core; [217]import "dart:math" show pi; [261]abstract class Shape extends core::Object { -[261] synthetic constructor •() → self::Shape +[261] synthetic constructor [-1] [-1] •() → self::Shape [-1] ; } [277]class Square extends core::Object implements self::Shape { [318] final field core::double length; -[328] constructor •([340] core::double length) → self::Square +[328] constructor [334] [347] •([340] core::double length) → self::Square [-1] ; } [358]class Circle extends core::Object implements self::Shape { [399] final field core::double radius; -[409] constructor •([421] core::double radius) → self::Circle +[409] constructor [415] [428] •([421] core::double radius) → self::Circle [-1] ; } -[440]static method calculateArea([460] self::Shape shape) → core::double +[440]static method [453] [708] calculateArea([460] self::Shape shape) → core::double [-1] ; -[711]static method testMain() → dynamic +[711]static method [719] [755] testMain() → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.transformed.expect index 4784b9b87c5..ce34a112d34 100644 --- a/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/step_through_patterns.dart.strong.transformed.expect @@ -5,23 +5,23 @@ import "dart:core" as core; [217]import "dart:math" show pi; [261]abstract class Shape extends core::Object { -[261] synthetic constructor •() → self::Shape +[261] synthetic constructor [-1] [-1] •() → self::Shape : [-1] super core::Object::• [-1]() [-1] ; } [277]class Square extends core::Object implements self::Shape { [318] final field core::double length; -[328] constructor •([340] core::double length) → self::Square +[328] constructor [334] [347] •([340] core::double length) → self::Square : [340] self::Square::length = [340] [340] length, [328] super core::Object::• [328]() [-1] ; } [358]class Circle extends core::Object implements self::Shape { [399] final field core::double radius; -[409] constructor •([421] core::double radius) → self::Circle +[409] constructor [415] [428] •([421] core::double radius) → self::Circle : [421] self::Circle::radius = [421] [421] radius, [409] super core::Object::• [409]() [-1] ; } -[440]static method calculateArea([460] self::Shape shape) → core::double +[440]static method [453] [708] calculateArea([460] self::Shape shape) → core::double [470] return [470] [470] block { [-1] [-1] core::double #t1; [478] [478] final synthesized self::Shape #0#0 = [478] [478] shape; @@ -67,7 +67,7 @@ import "dart:core" as core; } } } =>[-1] [-1] #t1; -[711]static method testMain() → dynamic { +[711]static method [719] [755] testMain() → dynamic { [726] [726] [726] self::calculateArea [739]([740] new self::Circle::• [746]([747] -123.0)); } diff --git a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.expect b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.expect index 8a190ed7d00..19bf01788a9 100644 --- a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.expect +++ b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.expect @@ -7,32 +7,32 @@ import "dart:core" as core; [229] enum-element static const field self::E b = [229] [229] #C6; [232] enum-element static const field self::E c = [232] [232] #C9; [222] static const field core::List values = [-1] [-1] #C10; -[222] const synthetic constructor •([222] core::int #index, [222] core::String #name) → self::E +[222] const synthetic constructor [222] [222] •([222] core::int #index, [222] core::String #name) → self::E : [222] super core::_Enum::• [222]([-1] #index, [-1] #name) [-1] ; -[222] method core::_enumToString() → core::String +[222] method [222] [222] core::_enumToString() → core::String [-1] return [-1] [-1] "E.${[-1] [-1] [-1] [-1] this.{core::_Enum::_name}{core::String}}"; } [243]class PrimitiveEquals extends core::Object /*hasConstConstructor*/ { [273] final field core::int field; -[289] const constructor •([310] core::int field) → self::PrimitiveEquals +[289] const constructor [304] [316] •([310] core::int field) → self::PrimitiveEquals : [310] self::PrimitiveEquals::field = [310] [310] field, [289] super core::Object::• [289]() [-1] ; } [327]class NonPrimitiveEquals extends core::Object /*hasConstConstructor*/ { [360] final field core::int field; -[376] const constructor •([400] core::int field) → self::NonPrimitiveEquals +[376] const constructor [394] [406] •([400] core::int field) → self::NonPrimitiveEquals : [400] self::NonPrimitiveEquals::field = [400] [400] field, [376] super core::Object::• [376]() [-1] ; -[419] get hashCode() → core::int +[419] get [428] [445] hashCode() → core::int [431] return [437] [437] [431] [431] [431] [431] this.{self::NonPrimitiveEquals::field}{core::int}.{core::num::hashCode}{core::int}; -[464] operator ==([474] core::Object other) → core::bool { +[464] operator [466] [594] ==([474] core::Object other) → core::bool { [487] if([491] [491] core::identical [500]([501] this, [507] other)) [515] return [522] [522] true; [532] return [567] [567] [545] [545] [539] [539] other is self::NonPrimitiveEquals && [576] [576] [570] [570] [570] [570] this.{self::NonPrimitiveEquals::field}{core::int} =={core::num::==}{(core::Object) → core::bool} [585] [585] [579] [579] other{self::NonPrimitiveEquals}.{self::NonPrimitiveEquals::field}{core::int}; } } -[599]static method switchStatement([615] dynamic o) → dynamic { +[599]static method [614] [753] switchStatement([615] dynamic o) → dynamic { [622] #L1: [622] { [630] [630] final synthesized dynamic #0#0 = [630] [630] o; @@ -64,7 +64,7 @@ import "dart:core" as core; } } } -[756]static method switchStatementWithLabel([781] dynamic o) → dynamic { +[756]static method [780] [958] switchStatementWithLabel([781] dynamic o) → dynamic { [788] #L2: [788] { [796] [796] final synthesized dynamic #0#0 = [796] [796] o; @@ -104,7 +104,7 @@ import "dart:core" as core; } } } -[961]static method switchStatementWithContinue([989] dynamic o) → dynamic { +[961]static method [988] [1281] switchStatementWithContinue([989] dynamic o) → dynamic { [996] #L3: [996] { [996] [996] core::int #t21 = [996] [996] [996] [996] 1.{core::int::unary-}[996](){() → core::int}; @@ -180,7 +180,7 @@ import "dart:core" as core; } } } -[1284]static method switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { +[1284]static method [1317] [2388] switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { [1330] #L7: [1330] { [1330] [1330] core::int #t32 = [1330] [1330] [1330] [1330] 1.{core::int::unary-}[1330](){() → core::int}; @@ -402,7 +402,7 @@ import "dart:core" as core; } } } -[2391]static method switchStatementEnum([2413] self::E o) → dynamic { +[2391]static method [2410] [2533] switchStatementEnum([2413] self::E o) → dynamic { [2420] #L19: [2420] switch([2428] [2428] o) /* isExplicitlyExhaustive, self::E */ { [2437] #L20: @@ -424,7 +424,7 @@ import "dart:core" as core; } } } -[2536]static method switchStatementEnumWithGuard([2567] self::E o) → dynamic { +[2536]static method [2564] [2677] switchStatementEnumWithGuard([2567] self::E o) → dynamic { [2574] #L23: [2574] { [2582] [2582] final synthesized self::E #0#0 = [2582] [2582] o; @@ -452,7 +452,7 @@ import "dart:core" as core; } } } -[2680]static method switchStatementEnumWithLabel([2711] self::E o) → dynamic { +[2680]static method [2708] [2842] switchStatementEnumWithLabel([2711] self::E o) → dynamic { [2718] #L24: [2718] switch([2726] [2726] o) /* isExplicitlyExhaustive, self::E */ { [2735] #L25: @@ -474,7 +474,7 @@ import "dart:core" as core; } } } -[2845]static method switchStatementEnumWithContinue([2879] self::E o) → dynamic { +[2845]static method [2876] [3069] switchStatementEnumWithContinue([2879] self::E o) → dynamic { [2886] #L28: [2886] switch([2894] [2894] o) /* isExplicitlyExhaustive, self::E */ { [2903] #L29: @@ -496,7 +496,7 @@ import "dart:core" as core; } } } -[3072]static method switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { +[3072]static method [3102] [3233] switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { [3110] #L32: [3110] switch([3118] [3118] o) /* dynamic */ { [3127] #L33: @@ -512,7 +512,7 @@ import "dart:core" as core; } } } -[3236]static method switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { +[3236]static method [3269] [3406] switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { [3277] #L35: [3277] { [3285] [3285] final synthesized dynamic #0#0 = [3285] [3285] o; @@ -535,7 +535,7 @@ import "dart:core" as core; } } } -[3409]static method switchExpression([3426] dynamic o) → dynamic { +[3409]static method [3425] [3512] switchExpression([3426] dynamic o) → dynamic { [3433] return [3440] [3440] block { [-1] [-1] dynamic #t59; [3448] [3448] final synthesized dynamic #0#0 = [3448] [3448] o; @@ -569,7 +569,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t59; } -[3515]static method switchExpressionEnum([3538] self::E o) → dynamic { +[3515]static method [3535] [3612] switchExpressionEnum([3538] self::E o) → dynamic { [3545] return [3552] [3552] block { [-1] [-1] core::int #t62; [3552] #L37: @@ -595,7 +595,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t62; } -[3615]static method switchExpressionEnumWithGuard([3647] self::E o) → dynamic { +[3615]static method [3644] [3729] switchExpressionEnumWithGuard([3647] self::E o) → dynamic { [3654] return [3661] [3661] block { [-1] [-1] core::int #t63; [3669] [3669] final synthesized self::E #0#0 = [3669] [3669] o; @@ -624,7 +624,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t63; } -[3732]static method switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { +[3732]static method [3763] [3878] switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { [3771] return [3778] [3778] block { [-1] [-1] core::int #t64; [3786] [3786] final synthesized dynamic #0#0 = [3786] [3786] o; @@ -653,7 +653,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t64; } -[3881]static method switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { +[3881]static method [3915] [4036] switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { [3923] return [3930] [3930] block { [-1] [-1] core::int #t65; [3938] [3938] final synthesized dynamic #0#0 = [3938] [3938] o; @@ -682,7 +682,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t65; } -[4039]static method switchStatementSymbol([4068] core::Symbol s) → dynamic { +[4039]static method [4060] [4194] switchStatementSymbol([4068] core::Symbol s) → dynamic { [4075] #L44: [4075] { [4083] [4083] final synthesized core::Symbol #0#0 = [4083] [4083] s; @@ -711,7 +711,7 @@ import "dart:core" as core; } } } -[4197]static method switchExpressionSymbol([4227] core::Symbol s) → dynamic { +[4197]static method [4219] [4312] switchExpressionSymbol([4227] core::Symbol s) → dynamic { [4234] return [4241] [4241] block { [-1] [-1] core::int #t66; [4249] [4249] final synthesized core::Symbol #0#0 = [4249] [4249] s; diff --git a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.modular.expect b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.modular.expect index 8a190ed7d00..19bf01788a9 100644 --- a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.modular.expect +++ b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.modular.expect @@ -7,32 +7,32 @@ import "dart:core" as core; [229] enum-element static const field self::E b = [229] [229] #C6; [232] enum-element static const field self::E c = [232] [232] #C9; [222] static const field core::List values = [-1] [-1] #C10; -[222] const synthetic constructor •([222] core::int #index, [222] core::String #name) → self::E +[222] const synthetic constructor [222] [222] •([222] core::int #index, [222] core::String #name) → self::E : [222] super core::_Enum::• [222]([-1] #index, [-1] #name) [-1] ; -[222] method core::_enumToString() → core::String +[222] method [222] [222] core::_enumToString() → core::String [-1] return [-1] [-1] "E.${[-1] [-1] [-1] [-1] this.{core::_Enum::_name}{core::String}}"; } [243]class PrimitiveEquals extends core::Object /*hasConstConstructor*/ { [273] final field core::int field; -[289] const constructor •([310] core::int field) → self::PrimitiveEquals +[289] const constructor [304] [316] •([310] core::int field) → self::PrimitiveEquals : [310] self::PrimitiveEquals::field = [310] [310] field, [289] super core::Object::• [289]() [-1] ; } [327]class NonPrimitiveEquals extends core::Object /*hasConstConstructor*/ { [360] final field core::int field; -[376] const constructor •([400] core::int field) → self::NonPrimitiveEquals +[376] const constructor [394] [406] •([400] core::int field) → self::NonPrimitiveEquals : [400] self::NonPrimitiveEquals::field = [400] [400] field, [376] super core::Object::• [376]() [-1] ; -[419] get hashCode() → core::int +[419] get [428] [445] hashCode() → core::int [431] return [437] [437] [431] [431] [431] [431] this.{self::NonPrimitiveEquals::field}{core::int}.{core::num::hashCode}{core::int}; -[464] operator ==([474] core::Object other) → core::bool { +[464] operator [466] [594] ==([474] core::Object other) → core::bool { [487] if([491] [491] core::identical [500]([501] this, [507] other)) [515] return [522] [522] true; [532] return [567] [567] [545] [545] [539] [539] other is self::NonPrimitiveEquals && [576] [576] [570] [570] [570] [570] this.{self::NonPrimitiveEquals::field}{core::int} =={core::num::==}{(core::Object) → core::bool} [585] [585] [579] [579] other{self::NonPrimitiveEquals}.{self::NonPrimitiveEquals::field}{core::int}; } } -[599]static method switchStatement([615] dynamic o) → dynamic { +[599]static method [614] [753] switchStatement([615] dynamic o) → dynamic { [622] #L1: [622] { [630] [630] final synthesized dynamic #0#0 = [630] [630] o; @@ -64,7 +64,7 @@ import "dart:core" as core; } } } -[756]static method switchStatementWithLabel([781] dynamic o) → dynamic { +[756]static method [780] [958] switchStatementWithLabel([781] dynamic o) → dynamic { [788] #L2: [788] { [796] [796] final synthesized dynamic #0#0 = [796] [796] o; @@ -104,7 +104,7 @@ import "dart:core" as core; } } } -[961]static method switchStatementWithContinue([989] dynamic o) → dynamic { +[961]static method [988] [1281] switchStatementWithContinue([989] dynamic o) → dynamic { [996] #L3: [996] { [996] [996] core::int #t21 = [996] [996] [996] [996] 1.{core::int::unary-}[996](){() → core::int}; @@ -180,7 +180,7 @@ import "dart:core" as core; } } } -[1284]static method switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { +[1284]static method [1317] [2388] switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { [1330] #L7: [1330] { [1330] [1330] core::int #t32 = [1330] [1330] [1330] [1330] 1.{core::int::unary-}[1330](){() → core::int}; @@ -402,7 +402,7 @@ import "dart:core" as core; } } } -[2391]static method switchStatementEnum([2413] self::E o) → dynamic { +[2391]static method [2410] [2533] switchStatementEnum([2413] self::E o) → dynamic { [2420] #L19: [2420] switch([2428] [2428] o) /* isExplicitlyExhaustive, self::E */ { [2437] #L20: @@ -424,7 +424,7 @@ import "dart:core" as core; } } } -[2536]static method switchStatementEnumWithGuard([2567] self::E o) → dynamic { +[2536]static method [2564] [2677] switchStatementEnumWithGuard([2567] self::E o) → dynamic { [2574] #L23: [2574] { [2582] [2582] final synthesized self::E #0#0 = [2582] [2582] o; @@ -452,7 +452,7 @@ import "dart:core" as core; } } } -[2680]static method switchStatementEnumWithLabel([2711] self::E o) → dynamic { +[2680]static method [2708] [2842] switchStatementEnumWithLabel([2711] self::E o) → dynamic { [2718] #L24: [2718] switch([2726] [2726] o) /* isExplicitlyExhaustive, self::E */ { [2735] #L25: @@ -474,7 +474,7 @@ import "dart:core" as core; } } } -[2845]static method switchStatementEnumWithContinue([2879] self::E o) → dynamic { +[2845]static method [2876] [3069] switchStatementEnumWithContinue([2879] self::E o) → dynamic { [2886] #L28: [2886] switch([2894] [2894] o) /* isExplicitlyExhaustive, self::E */ { [2903] #L29: @@ -496,7 +496,7 @@ import "dart:core" as core; } } } -[3072]static method switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { +[3072]static method [3102] [3233] switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { [3110] #L32: [3110] switch([3118] [3118] o) /* dynamic */ { [3127] #L33: @@ -512,7 +512,7 @@ import "dart:core" as core; } } } -[3236]static method switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { +[3236]static method [3269] [3406] switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { [3277] #L35: [3277] { [3285] [3285] final synthesized dynamic #0#0 = [3285] [3285] o; @@ -535,7 +535,7 @@ import "dart:core" as core; } } } -[3409]static method switchExpression([3426] dynamic o) → dynamic { +[3409]static method [3425] [3512] switchExpression([3426] dynamic o) → dynamic { [3433] return [3440] [3440] block { [-1] [-1] dynamic #t59; [3448] [3448] final synthesized dynamic #0#0 = [3448] [3448] o; @@ -569,7 +569,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t59; } -[3515]static method switchExpressionEnum([3538] self::E o) → dynamic { +[3515]static method [3535] [3612] switchExpressionEnum([3538] self::E o) → dynamic { [3545] return [3552] [3552] block { [-1] [-1] core::int #t62; [3552] #L37: @@ -595,7 +595,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t62; } -[3615]static method switchExpressionEnumWithGuard([3647] self::E o) → dynamic { +[3615]static method [3644] [3729] switchExpressionEnumWithGuard([3647] self::E o) → dynamic { [3654] return [3661] [3661] block { [-1] [-1] core::int #t63; [3669] [3669] final synthesized self::E #0#0 = [3669] [3669] o; @@ -624,7 +624,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t63; } -[3732]static method switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { +[3732]static method [3763] [3878] switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { [3771] return [3778] [3778] block { [-1] [-1] core::int #t64; [3786] [3786] final synthesized dynamic #0#0 = [3786] [3786] o; @@ -653,7 +653,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t64; } -[3881]static method switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { +[3881]static method [3915] [4036] switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { [3923] return [3930] [3930] block { [-1] [-1] core::int #t65; [3938] [3938] final synthesized dynamic #0#0 = [3938] [3938] o; @@ -682,7 +682,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t65; } -[4039]static method switchStatementSymbol([4068] core::Symbol s) → dynamic { +[4039]static method [4060] [4194] switchStatementSymbol([4068] core::Symbol s) → dynamic { [4075] #L44: [4075] { [4083] [4083] final synthesized core::Symbol #0#0 = [4083] [4083] s; @@ -711,7 +711,7 @@ import "dart:core" as core; } } } -[4197]static method switchExpressionSymbol([4227] core::Symbol s) → dynamic { +[4197]static method [4219] [4312] switchExpressionSymbol([4227] core::Symbol s) → dynamic { [4234] return [4241] [4241] block { [-1] [-1] core::int #t66; [4249] [4249] final synthesized core::Symbol #0#0 = [4249] [4249] s; diff --git a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.outline.expect b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.outline.expect index e9cb788ea1c..9e6f85c742d 100644 --- a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.outline.expect +++ b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.outline.expect @@ -7,61 +7,61 @@ import "dart:core" as core; [229] enum-element static const field self::E b = [229] [229] const self::E::• [-1]([-1] 1, [-1] "b"); [232] enum-element static const field self::E c = [232] [232] const self::E::• [-1]([-1] 2, [-1] "c"); [222] static const field core::List values = [-1] [-1] const [[-1] self::E::a, [-1] self::E::b, [-1] self::E::c]; -[222] const synthetic constructor •([222] core::int #index, [222] core::String #name) → self::E +[222] const synthetic constructor [222] [222] •([222] core::int #index, [222] core::String #name) → self::E : [222] super core::_Enum::• [222]([-1] #index, [-1] #name) [-1] ; -[222] method core::_enumToString() → core::String +[222] method [222] [222] core::_enumToString() → core::String [-1] return [-1] [-1] "E.${[-1] [-1] [-1] [-1] this.{core::_Enum::_name}{core::String}}"; } [243]class PrimitiveEquals extends core::Object /*hasConstConstructor*/ { [273] final field core::int field; -[289] const constructor •([310] core::int field) → self::PrimitiveEquals +[289] const constructor [304] [316] •([310] core::int field) → self::PrimitiveEquals : [310] self::PrimitiveEquals::field = [310] [310] field, [289] super core::Object::• [289]() [-1] ; } [327]class NonPrimitiveEquals extends core::Object /*hasConstConstructor*/ { [360] final field core::int field; -[376] const constructor •([400] core::int field) → self::NonPrimitiveEquals +[376] const constructor [394] [406] •([400] core::int field) → self::NonPrimitiveEquals : [400] self::NonPrimitiveEquals::field = [400] [400] field, [376] super core::Object::• [376]() [-1] ; -[419] get hashCode() → core::int +[419] get [428] [445] hashCode() → core::int [-1] ; -[464] operator ==([474] core::Object other) → core::bool +[464] operator [466] [594] ==([474] core::Object other) → core::bool [-1] ; } -[599]static method switchStatement([615] dynamic o) → dynamic +[599]static method [614] [753] switchStatement([615] dynamic o) → dynamic [-1] ; -[756]static method switchStatementWithLabel([781] dynamic o) → dynamic +[756]static method [780] [958] switchStatementWithLabel([781] dynamic o) → dynamic [-1] ; -[961]static method switchStatementWithContinue([989] dynamic o) → dynamic +[961]static method [988] [1281] switchStatementWithContinue([989] dynamic o) → dynamic [-1] ; -[1284]static method switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic +[1284]static method [1317] [2388] switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic [-1] ; -[2391]static method switchStatementEnum([2413] self::E o) → dynamic +[2391]static method [2410] [2533] switchStatementEnum([2413] self::E o) → dynamic [-1] ; -[2536]static method switchStatementEnumWithGuard([2567] self::E o) → dynamic +[2536]static method [2564] [2677] switchStatementEnumWithGuard([2567] self::E o) → dynamic [-1] ; -[2680]static method switchStatementEnumWithLabel([2711] self::E o) → dynamic +[2680]static method [2708] [2842] switchStatementEnumWithLabel([2711] self::E o) → dynamic [-1] ; -[2845]static method switchStatementEnumWithContinue([2879] self::E o) → dynamic +[2845]static method [2876] [3069] switchStatementEnumWithContinue([2879] self::E o) → dynamic [-1] ; -[3072]static method switchStatementPrimitiveEquals([3103] dynamic o) → dynamic +[3072]static method [3102] [3233] switchStatementPrimitiveEquals([3103] dynamic o) → dynamic [-1] ; -[3236]static method switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic +[3236]static method [3269] [3406] switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic [-1] ; -[3409]static method switchExpression([3426] dynamic o) → dynamic +[3409]static method [3425] [3512] switchExpression([3426] dynamic o) → dynamic [-1] ; -[3515]static method switchExpressionEnum([3538] self::E o) → dynamic +[3515]static method [3535] [3612] switchExpressionEnum([3538] self::E o) → dynamic [-1] ; -[3615]static method switchExpressionEnumWithGuard([3647] self::E o) → dynamic +[3615]static method [3644] [3729] switchExpressionEnumWithGuard([3647] self::E o) → dynamic [-1] ; -[3732]static method switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic +[3732]static method [3763] [3878] switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic [-1] ; -[3881]static method switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic +[3881]static method [3915] [4036] switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic [-1] ; -[4039]static method switchStatementSymbol([4068] core::Symbol s) → dynamic +[4039]static method [4060] [4194] switchStatementSymbol([4068] core::Symbol s) → dynamic [-1] ; -[4197]static method switchExpressionSymbol([4227] core::Symbol s) → dynamic +[4197]static method [4219] [4312] switchExpressionSymbol([4227] core::Symbol s) → dynamic [-1] ; diff --git a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.transformed.expect b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.transformed.expect index 23829b4c737..25b61b354a1 100644 --- a/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/offsets/switch_encoding.dart.strong.transformed.expect @@ -7,32 +7,32 @@ import "dart:core" as core; [229] enum-element static const field self::E b = [229] [229] #C6; [232] enum-element static const field self::E c = [232] [232] #C9; [222] static const field core::List values = [-1] [-1] #C10; -[222] const synthetic constructor •([222] core::int #index, [222] core::String #name) → self::E +[222] const synthetic constructor [222] [222] •([222] core::int #index, [222] core::String #name) → self::E : [222] super core::_Enum::• [222]([-1] #index, [-1] #name) [-1] ; -[222] method core::_enumToString() → core::String +[222] method [222] [222] core::_enumToString() → core::String [-1] return [-1] [-1] "E.${[-1] [-1] [-1] [-1] this.{core::_Enum::_name}{core::String}}"; } [243]class PrimitiveEquals extends core::Object /*hasConstConstructor*/ { [273] final field core::int field; -[289] const constructor •([310] core::int field) → self::PrimitiveEquals +[289] const constructor [304] [316] •([310] core::int field) → self::PrimitiveEquals : [310] self::PrimitiveEquals::field = [310] [310] field, [289] super core::Object::• [289]() [-1] ; } [327]class NonPrimitiveEquals extends core::Object /*hasConstConstructor*/ { [360] final field core::int field; -[376] const constructor •([400] core::int field) → self::NonPrimitiveEquals +[376] const constructor [394] [406] •([400] core::int field) → self::NonPrimitiveEquals : [400] self::NonPrimitiveEquals::field = [400] [400] field, [376] super core::Object::• [376]() [-1] ; -[419] get hashCode() → core::int +[419] get [428] [445] hashCode() → core::int [431] return [437] [437] [431] [431] [431] [431] this.{self::NonPrimitiveEquals::field}{core::int}.{core::num::hashCode}{core::int}; -[464] operator ==([474] core::Object other) → core::bool { +[464] operator [466] [594] ==([474] core::Object other) → core::bool { [487] if([491] [491] core::identical [500]([501] this, [507] other)) [515] return [522] [522] true; [532] return [567] [567] [545] [545] [539] [539] other is self::NonPrimitiveEquals && [576] [576] [570] [570] [570] [570] this.{self::NonPrimitiveEquals::field}{core::int} =={core::num::==}{(core::Object) → core::bool} [585] [585] [579] [579] other{self::NonPrimitiveEquals}.{self::NonPrimitiveEquals::field}{core::int}; } } -[599]static method switchStatement([615] dynamic o) → dynamic { +[599]static method [614] [753] switchStatement([615] dynamic o) → dynamic { [622] #L1: [622] { [630] [630] final synthesized dynamic #0#0 = [630] [630] o; @@ -64,7 +64,7 @@ import "dart:core" as core; } } } -[756]static method switchStatementWithLabel([781] dynamic o) → dynamic { +[756]static method [780] [958] switchStatementWithLabel([781] dynamic o) → dynamic { [788] #L2: [788] { [796] [796] final synthesized dynamic #0#0 = [796] [796] o; @@ -104,7 +104,7 @@ import "dart:core" as core; } } } -[961]static method switchStatementWithContinue([989] dynamic o) → dynamic { +[961]static method [988] [1281] switchStatementWithContinue([989] dynamic o) → dynamic { [996] #L3: [996] { [996] [996] core::int #t21 = [996] [996] [996] [996] 1.{core::int::unary-}[996](){() → core::int}; @@ -180,7 +180,7 @@ import "dart:core" as core; } } } -[1284]static method switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { +[1284]static method [1317] [2388] switchStatementWithContinueNested([1318] dynamic o1, [1322] dynamic o2) → dynamic { [1330] #L7: [1330] { [1330] [1330] core::int #t32 = [1330] [1330] [1330] [1330] 1.{core::int::unary-}[1330](){() → core::int}; @@ -402,7 +402,7 @@ import "dart:core" as core; } } } -[2391]static method switchStatementEnum([2413] self::E o) → dynamic { +[2391]static method [2410] [2533] switchStatementEnum([2413] self::E o) → dynamic { [2420] #L19: [2420] switch([2428] [2428] o) /* isExplicitlyExhaustive, self::E */ { [2437] #L20: @@ -424,7 +424,7 @@ import "dart:core" as core; } } } -[2536]static method switchStatementEnumWithGuard([2567] self::E o) → dynamic { +[2536]static method [2564] [2677] switchStatementEnumWithGuard([2567] self::E o) → dynamic { [2574] #L23: [2574] { [2582] [2582] final synthesized self::E #0#0 = [2582] [2582] o; @@ -452,7 +452,7 @@ import "dart:core" as core; } } } -[2680]static method switchStatementEnumWithLabel([2711] self::E o) → dynamic { +[2680]static method [2708] [2842] switchStatementEnumWithLabel([2711] self::E o) → dynamic { [2718] #L24: [2718] switch([2726] [2726] o) /* isExplicitlyExhaustive, self::E */ { [2735] #L25: @@ -474,7 +474,7 @@ import "dart:core" as core; } } } -[2845]static method switchStatementEnumWithContinue([2879] self::E o) → dynamic { +[2845]static method [2876] [3069] switchStatementEnumWithContinue([2879] self::E o) → dynamic { [2886] #L28: [2886] switch([2894] [2894] o) /* isExplicitlyExhaustive, self::E */ { [2903] #L29: @@ -496,7 +496,7 @@ import "dart:core" as core; } } } -[3072]static method switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { +[3072]static method [3102] [3233] switchStatementPrimitiveEquals([3103] dynamic o) → dynamic { [3110] #L32: [3110] switch([3118] [3118] o) /* dynamic */ { [3127] #L33: @@ -512,7 +512,7 @@ import "dart:core" as core; } } } -[3236]static method switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { +[3236]static method [3269] [3406] switchStatementNonPrimitiveEquals([3270] dynamic o) → dynamic { [3277] #L35: [3277] { [3285] [3285] final synthesized dynamic #0#0 = [3285] [3285] o; @@ -535,7 +535,7 @@ import "dart:core" as core; } } } -[3409]static method switchExpression([3426] dynamic o) → dynamic { +[3409]static method [3425] [3512] switchExpression([3426] dynamic o) → dynamic { [3433] return [3440] [3440] block { [-1] [-1] dynamic #t59; [3448] [3448] final synthesized dynamic #0#0 = [3448] [3448] o; @@ -569,7 +569,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t59; } -[3515]static method switchExpressionEnum([3538] self::E o) → dynamic { +[3515]static method [3535] [3612] switchExpressionEnum([3538] self::E o) → dynamic { [3545] return [3552] [3552] block { [-1] [-1] core::int #t62; [3552] #L37: @@ -595,7 +595,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t62; } -[3615]static method switchExpressionEnumWithGuard([3647] self::E o) → dynamic { +[3615]static method [3644] [3729] switchExpressionEnumWithGuard([3647] self::E o) → dynamic { [3654] return [3661] [3661] block { [-1] [-1] core::int #t63; [3669] [3669] final synthesized self::E #0#0 = [3669] [3669] o; @@ -624,7 +624,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t63; } -[3732]static method switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { +[3732]static method [3763] [3878] switchExpressionPrimitiveEquals([3764] dynamic o) → dynamic { [3771] return [3778] [3778] block { [-1] [-1] core::int #t64; [3786] [3786] final synthesized dynamic #0#0 = [3786] [3786] o; @@ -653,7 +653,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t64; } -[3881]static method switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { +[3881]static method [3915] [4036] switchExpressionNonPrimitiveEquals([3916] dynamic o) → dynamic { [3923] return [3930] [3930] block { [-1] [-1] core::int #t65; [3938] [3938] final synthesized dynamic #0#0 = [3938] [3938] o; @@ -682,7 +682,7 @@ import "dart:core" as core; } } =>[-1] [-1] #t65; } -[4039]static method switchStatementSymbol([4068] core::Symbol s) → dynamic { +[4039]static method [4060] [4194] switchStatementSymbol([4068] core::Symbol s) → dynamic { [4075] #L44: [4075] { [4083] [4083] final synthesized core::Symbol #0#0 = [4083] [4083] s; @@ -711,7 +711,7 @@ import "dart:core" as core; } } } -[4197]static method switchExpressionSymbol([4227] core::Symbol s) → dynamic { +[4197]static method [4219] [4312] switchExpressionSymbol([4227] core::Symbol s) → dynamic { [4234] return [4241] [4241] block { [-1] [-1] core::int #t66; [4249] [4249] final synthesized core::Symbol #0#0 = [4249] [4249] s; diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart index d2f522cebe0..1d8b312f07f 100644 --- a/pkg/kernel/lib/text/ast_to_text.dart +++ b/pkg/kernel/lib/text/ast_to_text.dart @@ -110,44 +110,54 @@ NameSystem globalDebuggingNames = new NameSystem(); String debugNodeToString(Node node) { StringBuffer buffer = new StringBuffer(); - new Printer(buffer, showOffsets: true, syntheticNames: globalDebuggingNames) - .writeNode(node); + new Printer( + buffer, + showOffsets: true, + syntheticNames: globalDebuggingNames, + ).writeNode(node); return '$buffer'; } String debugLibraryToString(Library library) { StringBuffer buffer = new StringBuffer(); - new Printer(buffer, syntheticNames: globalDebuggingNames) - .writeLibraryFile(library); + new Printer( + buffer, + syntheticNames: globalDebuggingNames, + ).writeLibraryFile(library); return '$buffer'; } String debugComponentToString(Component component) { StringBuffer buffer = new StringBuffer(); - new Printer(buffer, syntheticNames: new NameSystem()) - .writeComponentFile(component); + new Printer( + buffer, + syntheticNames: new NameSystem(), + ).writeComponentFile(component); return '$buffer'; } String componentToString(Component node) { StringBuffer buffer = new StringBuffer(); - new Printer(buffer, syntheticNames: new NameSystem()) - .writeComponentFile(node); + new Printer( + buffer, + syntheticNames: new NameSystem(), + ).writeComponentFile(node); return '$buffer'; } class NameSystem { - final Namer variables = - new NormalNamer('#t'); + final Namer variables = new NormalNamer('#t'); final Namer libraries = new NormalNamer('#lib'); - final Namer typeParameters = - new NormalNamer('#T'); + final Namer typeParameters = new NormalNamer( + '#T', + ); final Namer structuralParameters = new NormalNamer('#T'); final Namer labels = new NormalNamer('#L'); final Namer constants = new ConstantNamer('#C'); - final Namer contexts = - new NormalNamer('#ctx'); + final Namer contexts = new NormalNamer( + '#ctx', + ); final Disambiguator prefixes = new Disambiguator(); @@ -183,7 +193,9 @@ class NameSystem { return abbreviateName(path); } else { return _nameFromLibraryCanonicalName( - reference, reference.canonicalName); + reference, + reference.canonicalName, + ); } }); } @@ -204,8 +216,11 @@ class NameSystem { return 'L'; } - String nameCanonicalNameAsLibraryPrefix(Reference? node, CanonicalName? name, - {String? proposedName}) { + String nameCanonicalNameAsLibraryPrefix( + Reference? node, + CanonicalName? name, { + String? proposedName, + }) { return prefixes.disambiguate(node, name, () { if (proposedName != null) return proposedName; return _nameFromLibraryCanonicalName(node, name); @@ -251,25 +266,30 @@ class Printer extends VisitorDefault with VisitorVoidMixin { static final int SYMBOL = 2; int state = SPACE; - Printer(this.sink, - {NameSystem? syntheticNames, - this.showOffsets = false, - this.showMetadata = false, - this.showLibraryForNames = false, - this.importTable, - this.annotator, - this.metadata}) - : this.syntheticNames = syntheticNames ?? new NameSystem(); + Printer( + this.sink, { + NameSystem? syntheticNames, + this.showOffsets = false, + this.showMetadata = false, + this.showLibraryForNames = false, + this.importTable, + this.annotator, + this.metadata, + }) : this.syntheticNames = syntheticNames ?? new NameSystem(); - Printer createInner(ImportTable importTable, - Map>? metadata) { - return new Printer(sink, - importTable: importTable, - metadata: metadata, - syntheticNames: syntheticNames, - annotator: annotator, - showOffsets: showOffsets, - showMetadata: showMetadata); + Printer createInner( + ImportTable importTable, + Map>? metadata, + ) { + return new Printer( + sink, + importTable: importTable, + metadata: metadata, + syntheticNames: syntheticNames, + annotator: annotator, + showOffsets: showOffsets, + showMetadata: showMetadata, + ); } bool shouldHighlight(Node node) { @@ -338,8 +358,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { String declarationName = getClassReference(enclosingDeclaration); return '$declarationName::$name'; } else if (enclosingDeclaration is ExtensionTypeDeclaration) { - String declarationName = - getExtensionTypeDeclarationReference(enclosingDeclaration); + String declarationName = getExtensionTypeDeclarationReference( + enclosingDeclaration, + ); return '$declarationName::$name'; } else { String library = getLibraryReference(node.enclosingLibrary.reference); @@ -433,8 +454,11 @@ class Printer extends VisitorDefault with VisitorVoidMixin { LibraryImportTable imports = new LibraryImportTable(library); Printer inner = createInner(imports, library.enclosingComponent?.metadata); - inner.writeStandardLibraryContent(library, - outerPrinter: this, importsToPrint: imports); + inner.writeStandardLibraryContent( + library, + outerPrinter: this, + importsToPrint: imports, + ); } void writeProcedureInLibrary(Procedure procedure, Library library) { @@ -447,8 +471,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { for (Library library in imports.importedLibraries) { String importPath = imports.getImportPath(library); if (importPath == "") { - String prefix = syntheticNames.nameLibraryPrefix(library.reference, - proposedName: 'self'); + String prefix = syntheticNames.nameLibraryPrefix( + library.reference, + proposedName: 'self', + ); endLine('import self as $prefix;'); } else { String prefix = syntheticNames.nameLibraryPrefix(library.reference); @@ -457,12 +483,17 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } } - void writeStandardLibraryContent(Library library, - {Printer? outerPrinter, LibraryImportTable? importsToPrint}) { + void writeStandardLibraryContent( + Library library, { + Printer? outerPrinter, + LibraryImportTable? importsToPrint, + }) { _currentLibrary = library; outerPrinter ??= this; outerPrinter.writeProblemsAsJson( - "Problems in library", library.problemsAsJson); + "Problems in library", + library.problemsAsJson, + ); if (importsToPrint != null) { outerPrinter.printLibraryImportTable(importsToPrint); @@ -642,8 +673,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeWord("[${node.fileOffset}]"); } if (showMetadata && node is TreeNode && node is! VariableDeclaration) { - writeMetadata(node, - separateLines: node is Member || node is FunctionDeclaration); + writeMetadata( + node, + separateLines: node is Member || node is FunctionDeclaration, + ); } node.accept(this); @@ -748,8 +781,16 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } } - void writeFunction(FunctionNode function, - {name, List? initializers, bool terminateLine = true}) { + void writeFunction( + FunctionNode function, { + name, + List? initializers, + bool terminateLine = true, + }) { + if (showOffsets) { + writeWord("[${function.fileOffset}]"); + writeWord("[${function.fileEndOffset}]"); + } if (name is String) { writeWord(name); } else if (name is Name) { @@ -758,11 +799,16 @@ class Printer extends VisitorDefault with VisitorVoidMixin { assert(name == null); } writeTypeParameterList(function.typeParameters); - writeParameterList(function.positionalParameters, function.namedParameters, - function.requiredParameterCount); + writeParameterList( + function.positionalParameters, + function.namedParameters, + function.requiredParameterCount, + ); _writeContexts(function); writeReturnType( - function.returnType, annotator?.annotateReturn(this, function)); + function.returnType, + annotator?.annotateReturn(this, function), + ); if (initializers != null && initializers.isNotEmpty) { endLine(); ++indentation; @@ -791,7 +837,8 @@ class Printer extends VisitorDefault with VisitorVoidMixin { redirectingFactoryTarget.target != null) { writeWord('/* redirection-target:'); writeMemberReferenceFromReference( - redirectingFactoryTarget.targetReference); + redirectingFactoryTarget.targetReference, + ); if (redirectingFactoryTarget.typeArguments!.isNotEmpty) { writeSymbol('<'); writeList(redirectingFactoryTarget.typeArguments!, writeType); @@ -931,18 +978,25 @@ class Printer extends VisitorDefault with VisitorVoidMixin { state = WORD; // Ensure space if not followed by another symbol. } - void writeParameterList(List positional, - List named, int requiredParameterCount) { + void writeParameterList( + List positional, + List named, + int requiredParameterCount, + ) { writeSymbol('('); writeList( - positional.take(requiredParameterCount), writeVariableDeclaration); + positional.take(requiredParameterCount), + writeVariableDeclaration, + ); if (requiredParameterCount < positional.length) { if (requiredParameterCount > 0) { writeComma(); } writeSymbol('['); writeList( - positional.skip(requiredParameterCount), writeVariableDeclaration); + positional.skip(requiredParameterCount), + writeVariableDeclaration, + ); writeSymbol(']'); } if (named.isNotEmpty) { @@ -956,8 +1010,11 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeSymbol(')'); } - void writeList(Iterable nodes, void callback(T x), - {String separator = ','}) { + void writeList( + Iterable nodes, + void callback(T x), { + String separator = ',', + }) { bool first = true; for (T node in nodes) { if (first) { @@ -982,15 +1039,18 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } void writeExtensionTypeDeclarationReferenceFromReference( - Reference reference) { + Reference reference, + ) { writeWord(getExtensionTypeDeclarationReferenceFromReference(reference)); } String getExtensionTypeDeclarationReferenceFromReference( - Reference reference) { + Reference reference, + ) { if (reference.node != null) { return getExtensionTypeDeclarationReference( - reference.asExtensionTypeDeclaration); + reference.asExtensionTypeDeclaration, + ); } if (reference.canonicalName != null) { return getCanonicalNameString(reference.canonicalName!); @@ -1020,7 +1080,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { return getLibraryReference(lib.reference); } return syntheticNames.nameCanonicalNameAsLibraryPrefix( - lib.reference, lib); + lib.reference, + lib, + ); } String classString(CanonicalName cls) => @@ -1098,8 +1160,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } } - void writeAnnotationList(List nodes, - {bool separateLines = true}) { + void writeAnnotationList( + List nodes, { + bool separateLines = true, + }) { for (Expression node in nodes) { if (separateLines) { writeIndentation(); @@ -1220,7 +1284,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } if (node.hasIsCovariantByDeclaration) { writeModifier( - node.isCovariantByDeclaration, 'covariant-by-declaration'); + node.isCovariantByDeclaration, + 'covariant-by-declaration', + ); } if (node.hasIsCovariantByClass) { writeModifier(node.isCovariantByClass, 'covariant-by-class'); @@ -1233,7 +1299,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } if (node.hasIsSynthesized) { writeModifier( - node.isSynthesized && node.cosmeticName != null, 'synthesized'); + node.isSynthesized && node.cosmeticName != null, + 'synthesized', + ); } if (node.hasIsHoisted) { writeModifier(node.isHoisted, 'hoisted'); @@ -1354,8 +1422,11 @@ class Printer extends VisitorDefault with VisitorVoidMixin { break; case ProcedureStubKind.MemberSignature: case ProcedureStubKind.AbstractMixinStub: - writeFunction(node.function, - name: getMemberName(node), terminateLine: false); + writeFunction( + node.function, + name: getMemberName(node), + terminateLine: false, + ); if (node.function.body is ReturnStatement) { writeSymbol(';'); } @@ -1382,8 +1453,11 @@ class Printer extends VisitorDefault with VisitorVoidMixin { if (features.isNotEmpty) { writeWord("/*${features.join(',')}*/"); } - writeFunction(node.function, - name: node.name, initializers: node.initializers); + writeFunction( + node.function, + name: node.name, + initializers: node.initializers, + ); } @override @@ -1657,9 +1731,7 @@ class Printer extends VisitorDefault with VisitorVoidMixin { _writeDynamicAccessKind(node.kind); if (!node.isImplicitCall) { writeSymbol('.'); - writeName( - node.name, - ); + writeName(node.name); } writeNode(node.arguments); } @@ -1823,8 +1895,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { @override void visitLogicalExpression(LogicalExpression node) { - int precedence = Precedence.binaryPrecedence[ - logicalExpressionOperatorToString(node.operatorEnum)]!; + int precedence = + Precedence.binaryPrecedence[logicalExpressionOperatorToString( + node.operatorEnum, + )]!; writeExpression(node.left, precedence); writeSpaced(logicalExpressionOperatorToString(node.operatorEnum)); writeExpression(node.right, precedence + 1); @@ -2381,9 +2455,11 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeSymbol('.${node.name}'); writeSymbol('{'); // TODO(johnniwinther): Should we store the result type in the node? - writeType(node.receiverType.named - .singleWhere((element) => element.name == node.name) - .type); + writeType( + node.receiverType.named + .singleWhere((element) => element.name == node.name) + .type, + ); writeSymbol('}'); } @@ -2690,8 +2766,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeFunction(node.function, name: getVariableName(node.variable)); } - void writeVariableDeclaration(VariableDeclaration node, - {bool useVarKeyword = false}) { + void writeVariableDeclaration( + VariableDeclaration node, { + bool useVarKeyword = false, + }) { if (node is FunctionParameter) { writeExpressionVariable(node); } else { @@ -2709,7 +2787,8 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeModifier(node.isHoisted, 'hoisted'); writeModifier(node.isWildcard, 'wildcard'); writeModifier(node.isErroneouslyInitialized, 'erroneously-initialized'); - bool hasImplicitInitializer = node.initializer is NullLiteral || + bool hasImplicitInitializer = + node.initializer is NullLiteral || (node.initializer is ConstantExpression && (node.initializer as ConstantExpression).constant is NullConstant); @@ -2720,7 +2799,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { !hasImplicitInitializer && !node.hasDeclaredInitializer) { writeModifier( - node.hasDeclaredInitializer, 'has-no-declared-initializer'); + node.hasDeclaredInitializer, + 'has-no-declared-initializer', + ); } writeAnnotatedType(node.type, annotator?.annotateVariable(this, node)); writeWord(getVariableName(node)); @@ -2732,9 +2813,7 @@ class Printer extends VisitorDefault with VisitorVoidMixin { } } - void writeVariableInitialization( - VariableInitialization node, - ) { + void writeVariableInitialization(VariableInitialization node) { if (node is VariableDeclaration) { writeVariableDeclaration(node); } else { @@ -2742,7 +2821,8 @@ class Printer extends VisitorDefault with VisitorVoidMixin { if (showMetadata) writeMetadata(node); writeAnnotationList(node.annotations, separateLines: false); writeModifier(node.isErroneouslyInitialized, 'erroneously-initialized'); - bool hasImplicitInitializer = node.initializer is NullLiteral || + bool hasImplicitInitializer = + node.initializer is NullLiteral || (node.initializer is ConstantExpression && (node.initializer as ConstantExpression).constant is NullConstant); @@ -2753,7 +2833,9 @@ class Printer extends VisitorDefault with VisitorVoidMixin { !hasImplicitInitializer && !node.hasDeclaredInitializer) { writeModifier( - node.hasDeclaredInitializer, 'has-no-declared-initializer'); + node.hasDeclaredInitializer, + 'has-no-declared-initializer', + ); } writeWord(getVariableName(node.variable)); Expression? initializer = node.initializer; @@ -2772,8 +2854,10 @@ class Printer extends VisitorDefault with VisitorVoidMixin { writeSymbol('>'); } writeSymbol('('); - Iterable allArgs = - >[node.positional, node.named].expand((x) => x); + Iterable allArgs = >[ + node.positional, + node.named, + ].expand((x) => x); writeList(allArgs, writeNode); writeSymbol(')'); } @@ -2905,7 +2989,8 @@ class Printer extends VisitorDefault with VisitorVoidMixin { @override void visitExtensionType(ExtensionType node) { writeExtensionTypeDeclarationReferenceFromReference( - node.extensionTypeDeclarationReference); + node.extensionTypeDeclarationReference, + ); if (node.typeArguments.isNotEmpty) { writeSymbol('<'); writeList(node.typeArguments, writeType); @@ -3278,7 +3363,8 @@ class Printer extends VisitorDefault with VisitorVoidMixin { @override void visitRedirectingFactoryTearOffConstant( - RedirectingFactoryTearOffConstant node) { + RedirectingFactoryTearOffConstant node, + ) { writeIndentation(); writeConstantReference(node); writeSpaced('=');