Version 2.18.0-212.0.dev
Merge commit '3326738913a08b3423bffbef6642a49fd8099ca0' into 'dev'
diff --git a/pkg/dart2js_info/CONTRIBUTING.md b/pkg/dart2js_info/CONTRIBUTING.md
deleted file mode 100644
index 6f5e0ea..0000000
--- a/pkg/dart2js_info/CONTRIBUTING.md
+++ /dev/null
@@ -1,33 +0,0 @@
-Want to contribute? Great! First, read this page (including the small print at
-the end).
-
-### Before you contribute
-Before we can use your code, you must sign the
-[Google Individual Contributor License Agreement](https://cla.developers.google.com/about/google-individual)
-(CLA), which you can do online. The CLA is necessary mainly because you own the
-copyright to your changes, even after your contribution becomes part of our
-codebase, so we need your permission to use and distribute your code. We also
-need to be sure of various other things—for instance that you'll tell us if you
-know that your code infringes on other people's patents. You don't have to sign
-the CLA until after you've submitted your code for review and a member has
-approved it, but you must do it before we can put your code into our codebase.
-
-Before you start working on a larger contribution, you should get in touch with
-us first through the issue tracker with your idea so that we can help out and
-possibly guide you. Coordinating up front makes it much easier to avoid
-frustration later on.
-
-### Code reviews
-All submissions, including submissions by project members, require review.
-
-### File headers
-All files in the project must start with the following header.
-
- // Copyright (c) 2015, 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.
-
-### The small print
-Contributions made by corporations are covered by a different agreement than the
-one above, the
-[Software Grant and Corporate Contributor License Agreement](https://developers.google.com/open-source/cla/corporate).
diff --git a/pkg/dart2js_info/README.md b/pkg/dart2js_info/README.md
index 1cfc18f..ffb942e 100644
--- a/pkg/dart2js_info/README.md
+++ b/pkg/dart2js_info/README.md
@@ -35,15 +35,9 @@
## Tools
-All tools are provided as commands of a single command-line interface. To
-install:
+All tools are provided as commands of a single command-line interface. To run:
```console
-pub global activate dart2js_info
-```
-
-To run a tool, then run:
-```console
-dart2js_info <command> [arguments]
+$ dart bin/tools.dart <command> [arguments]
```
There is a short help available on the tool, and more details are provided
@@ -152,9 +146,7 @@
Run this tool as follows:
```console
-# activate is only needed once to install the dart2js_info tool
-$ pub global activate dart2js_info
-$ dart2js_info code_deps some_path out.js.info.data main foo
+$ dart bin/tools.dart code_deps some_path out.js.info.data main foo
```
The arguments to the query are regular expressions that can be used to
@@ -175,8 +167,7 @@
run as follows:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info common old.js.info.data new.js.info.data
+$ dart bin/tools.dart common old.js.info.data new.js.info.data
```
The tool gives a breakdown of the common elements between the two info files,
@@ -213,8 +204,7 @@
as follows:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info diff old.js.info.data new.js.info.data [--summary]
+$ dart bin/tools.dart diff old.js.info.data new.js.info.data [--summary]
```
The tool gives a breakdown of the difference between the two info files.
@@ -285,8 +275,7 @@
libraries. It can be run as follows:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info library_size out.js.info.data
+$ dart bin/tools.dart library_size out.js.info.data
```
@@ -295,7 +284,7 @@
with the `--grouping` flag:
```console
-$ dart2js_info library_size out.js.info.data --grouping grouping.yaml
+$ dart bin/tools.dart library_size out.js.info.data --grouping grouping.yaml
```
The format of the `grouping.yaml` file is as follows:
@@ -366,8 +355,7 @@
given in a YAML file. It can be run as follows:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info deferred_check out.js.info.data manifest.yaml
+$ dart bin/tools.dart deferred_check out.js.info.data manifest.yaml
```
The format of the YAML file is:
@@ -414,8 +402,7 @@
follows:
```console
-pub global activate dart2js_info # only needed once
-dart2js_info deferred_size out.js.info.data
+$ dart bin/tools.dart deferred_size out.js.info.data
```
The tool will output a table listing all of the deferred imports in the program
@@ -439,8 +426,7 @@
follows:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info deferred_layout out.js.info.data
+$ dart bin/tools.dart deferred_layout out.js.info.data
```
The tool will output a table listing all of the deferred output units or chunks,
@@ -483,8 +469,7 @@
When you run:
```console
-$ pub global activate dart2js_info # only needed once
-$ dart2js_info function_size out.js.info.data
+$ dart bin/tools.dart function_size out.js.info.data
```
the tool produces a table output with lots of entries. Here is an example entry
@@ -524,7 +509,7 @@
* Launch the coverage server tool to serve up the JS code of your app:
```console
-$ dart2js_info coverage_server main.dart.js
+$ dart bin/tools.dart coverage_server main.dart.js
```
* (optional) If you have a complex application setup, you may need to serve an
@@ -541,7 +526,7 @@
coverage json files:
```console
-$ dart2js_info coverage_analysis main.dart.info.data main.dart.coverage.json
+$ dart bin/tools.dart coverage_analysis main.dart.info.data main.dart.coverage.json
```
### Runtime Code Analysis
@@ -571,13 +556,13 @@
Finally run this tool:
```console
-$ dart2js_info runtime_coverage main.dart.info.data main.runtime.data.txt
+$ dart bin/tools.dart runtime_coverage main.dart.info.data main.runtime.data.txt
```
And with the following to view package-level information:
```console
-$ dart2js_info runtime_coverage --show-packages main.dart.info.data main.runtime.data.txt
+$ dart bin/tools.dart runtime_coverage --show-packages main.dart.info.data main.runtime.data.txt
```
Here's an example output snippet:
@@ -619,7 +604,7 @@
This package is developed in [github][repo]. Please file feature requests and
bugs at the [issue tracker][tracker].
-[AllInfo]: https://pub.dev/documentation/dart2js_info/latest/dart2js_info.info/AllInfo-class.html
+[AllInfo]: https://github.com/dart-lang/sdk/blob/801bbb551bd4b8c2a875f8f2c6ddb337e102e0f7/pkg/dart2js_info/lib/info.dart#L77
[code_deps]: https://github.com/dart-lang/sdk/tree/main/pkg/dart2js_info/bin/src/code_deps.dart
[common]: https://github.com/dart-lang/sdk/tree/main/pkg/dart2js_info/bin/src/common_command.dart
[convert]: https://github.com/dart-lang/sdk/tree/main/pkg/dart2js_info/bin/convert.dart
diff --git a/pkg/front_end/test/fasta/textual_outline_suite.dart b/pkg/front_end/test/fasta/textual_outline_suite.dart
index 7309219..c0249d6 100644
--- a/pkg/front_end/test/fasta/textual_outline_suite.dart
+++ b/pkg/front_end/test/fasta/textual_outline_suite.dart
@@ -89,7 +89,11 @@
// TODO(jensj): NNBD should be configured correctly.
String? result = textualOutline(
bytes,
- const ScannerConfiguration(enableExtensionMethods: true),
+ const ScannerConfiguration(
+ enableExtensionMethods: true,
+ enableNonNullable: true,
+ enableTripleShift: true,
+ ),
throwOnUnexpected: true,
performModelling: modelled,
addMarkerForUnknownForTest: modelled,
diff --git a/pkg/front_end/testcases/const_functions/const_functions_const_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/const_functions/const_functions_const_factory.dart.textual_outline_modelled.expect
deleted file mode 100644
index cb1859d..0000000
--- a/pkg/front_end/testcases/const_functions/const_functions_const_factory.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,12 +0,0 @@
-import "package:expect/expect.dart";
-
-class MessageType {
- const MessageType._(this.name);
- const factory MessageType.parse(String name) {}
- final String name;
- static const print = MessageType._('print');
- static const skip = MessageType._('skip');
-}
-
-const printConst = MessageType.parse("print");
-void main() {}
diff --git a/pkg/front_end/testcases/dart2js/late_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/dart2js/late_fields.dart.textual_outline_modelled.expect
index 79b904b..4c47c71 100644
--- a/pkg/front_end/testcases/dart2js/late_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/dart2js/late_fields.dart.textual_outline_modelled.expect
@@ -1,21 +1,10 @@
class C {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int a;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int b;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int c = -1;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int d = -1;
+ late final int b;
+ late final int d = -1;
+ late int a;
+ late int c = -1;
}
+
var c = C();
void main() {}
void testInitializedFinalInstanceField() {}
diff --git a/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline.expect b/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline.expect
index 37ed746..51c2243 100644
--- a/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline.expect
@@ -1,16 +1,15 @@
import 'late_statics_lib.dart' as lib;
export 'late_statics_lib.dart';
+
void main() {}
+
class Statics {
- static late int ;
- a;
- static late ;
- final int b;
- static late int ;
- c = -1;
- static late ;
- final int d = -1;
+ static late int a;
+ static late final int b;
+ static late int c = -1;
+ static late final int d = -1;
}
+
void testUninitializedNonFinalStaticField() {}
void testUninitializedFinalStaticField() {}
void testInitializedNonFinalStaticField() {}
diff --git a/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..2b9d16c
--- /dev/null
+++ b/pkg/front_end/testcases/dart2js/late_statics.dart.textual_outline_modelled.expect
@@ -0,0 +1,19 @@
+export 'late_statics_lib.dart';
+import 'late_statics_lib.dart' as lib;
+
+class Statics {
+ static late final int b;
+ static late final int d = -1;
+ static late int a;
+ static late int c = -1;
+}
+
+void main() {}
+void testInitializedFinalStaticField() {}
+void testInitializedFinalTopLevelField() {}
+void testInitializedNonFinalStaticField() {}
+void testInitializedNonFinalTopLevelField() {}
+void testUninitializedFinalStaticField() {}
+void testUninitializedFinalTopLevelField() {}
+void testUninitializedNonFinalStaticField() {}
+void testUninitializedNonFinalTopLevelField() {}
diff --git a/pkg/front_end/testcases/extension_types/simple_getter_resolution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/simple_getter_resolution.dart.textual_outline_modelled.expect
deleted file mode 100644
index 8d51c64..0000000
--- a/pkg/front_end/testcases/extension_types/simple_getter_resolution.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-class A {
- int get foo => 42;
-}
-
-extension E on A {
- double get bar => 3.14;
-}
-
-main() {}
-test(A a, E e) {}
diff --git a/pkg/front_end/testcases/extension_types/simple_method_resolution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/simple_method_resolution.dart.textual_outline_modelled.expect
deleted file mode 100644
index 00002ee..0000000
--- a/pkg/front_end/testcases/extension_types/simple_method_resolution.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-class A {
- void foo() {}
-}
-
-extension E on A {
- void bar() => foo();
-}
-
-main() {}
-test(A a, E e) {}
diff --git a/pkg/front_end/testcases/extension_types/simple_operator_resolution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/simple_operator_resolution.dart.textual_outline_modelled.expect
deleted file mode 100644
index 3cbb6bf..0000000
--- a/pkg/front_end/testcases/extension_types/simple_operator_resolution.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,13 +0,0 @@
-class A {
- dynamic operator *(dynamic other) => 42;
- dynamic operator -() => 42;
- dynamic operator [](int index) => 42;
- void operator []=(int index, dynamic value) {}
-}
-
-extension E on A {
- dynamic operator +(dynamic other) => 42;
-}
-
-main() {}
-test(A a, E e) {}
diff --git a/pkg/front_end/testcases/extension_types/simple_setter_resolution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/simple_setter_resolution.dart.textual_outline_modelled.expect
deleted file mode 100644
index 74b9e08..0000000
--- a/pkg/front_end/testcases/extension_types/simple_setter_resolution.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,10 +0,0 @@
-class A {
- void set foo(int value) {}
-}
-
-extension E on A {
- void set bar(int value) {}
-}
-
-main() {}
-test(A a, E e) {}
diff --git a/pkg/front_end/testcases/extension_types/simple_show_hide_conflicts.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/simple_show_hide_conflicts.dart.textual_outline_modelled.expect
deleted file mode 100644
index 4d9e489..0000000
--- a/pkg/front_end/testcases/extension_types/simple_show_hide_conflicts.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,11 +0,0 @@
-extension E1 on int {}
-
-extension E2 on int {}
-
-extension E3 on int {}
-
-hide ceil() {}
-hide isEven() {}
-main() {}
-show num() {}
-show num;
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
index a9bbfdc..b0caae8 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.textual_outline_modelled.expect
@@ -14,6 +14,7 @@
void recalculate() {}
void removeFromGraph() {}
}
+
abstract class Constraint {
Constraint? satisfy(mark) {}
Variable output();
@@ -32,6 +33,7 @@
void recalculate();
void removeFromGraph();
}
+
abstract class UnaryConstraint extends Constraint {
UnaryConstraint(this.myOutput, Strength strength) : super(strength) {}
Variable output() => myOutput;
@@ -46,24 +48,30 @@
void recalculate() {}
void removeFromGraph() {}
}
+
class DeltaBlue {
void run() {}
}
+
class EditConstraint extends UnaryConstraint {
EditConstraint(Variable v, Strength str) : super(v, str);
bool isInput() => true;
void execute() {}
}
+
class EqualityConstraint extends BinaryConstraint {
- EqualityConstraint(Variable v1, Variable v2, Strength strength) : super(v1, v2, strength);
+ EqualityConstraint(Variable v1, Variable v2, Strength strength)
+ : super(v1, v2, strength);
void execute() {}
}
+
class Plan {
List<Constraint> list = <Constraint>[];
int size() => list.length;
void addConstraint(Constraint c) {}
void execute() {}
}
+
class Planner {
List<Constraint> removePropagateFrom(Variable out) {}
Plan extractPlanFromConstraints(List<Constraint> constraints) {}
@@ -75,8 +83,11 @@
void incrementalAdd(Constraint c) {}
void incrementalRemove(Constraint c) {}
}
+
class ScaleConstraint extends BinaryConstraint {
- ScaleConstraint( Variable src, this.scale, this.offset, Variable dest, Strength strength) : super(src, dest, strength);
+ ScaleConstraint(
+ Variable src, this.scale, this.offset, Variable dest, Strength strength)
+ : super(src, dest, strength);
final Variable offset;
final Variable scale;
void addToGraph() {}
@@ -85,12 +96,21 @@
void recalculate() {}
void removeFromGraph() {}
}
+
class StayConstraint extends UnaryConstraint {
StayConstraint(Variable v, Strength str) : super(v, str);
void execute() {}
}
+
class Strength {
- Strength nextWeaker() => const <Strength>[ STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, WEAK_DEFAULT, WEAKEST ][value];
+ Strength nextWeaker() => const <Strength>[
+ STRONG_PREFERRED,
+ PREFERRED,
+ STRONG_DEFAULT,
+ NORMAL,
+ WEAK_DEFAULT,
+ WEAKEST
+ ][value];
const Strength(this.value, this.name);
final String name;
final int value;
@@ -99,6 +119,7 @@
static bool stronger(Strength s1, Strength s2) {}
static bool weaker(Strength s1, Strength s2) {}
}
+
class Variable {
Constraint? determinedBy;
List<Constraint> constraints = <Constraint>[];
@@ -111,6 +132,7 @@
void addConstraint(Constraint c) {}
void removeConstraint(Constraint c) {}
}
+
const NORMAL = const Strength(4, "normal");
const PREFERRED = const Strength(2, "preferred");
const REQUIRED = const Strength(0, "required");
@@ -121,11 +143,8 @@
const int BACKWARD = 0;
const int FORWARD = 2;
const int NONE = 1;
+late Planner planner;
main() {}
void chainTest(int n) {}
void change(Variable v, int newValue) {}
void projectionTest(int n) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-Planner planner;
diff --git a/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect
index c27fead..43d1837 100644
--- a/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/covariant_generic2.dart.textual_outline_modelled.expect
@@ -1,18 +1,13 @@
class Foo<T> {
+ Foo(this.finalField, this.callbackField);
final Callback<T> callbackField;
final T finalField;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- T mutableField;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- Callback<T> mutableCallbackField;
- Foo(this.finalField, this.callbackField);
+ late Callback<T> mutableCallbackField;
+ late T mutableField;
set setter(T x) {}
void method(T x) {}
void withCallback(Callback<T> callback) {}
}
+
main() {}
typedef void Callback<T>(T x);
diff --git a/pkg/front_end/testcases/general/extension_types_feature_not_enabled.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/extension_types_feature_not_enabled.dart.textual_outline_modelled.expect
deleted file mode 100644
index f4eb2498..0000000
--- a/pkg/front_end/testcases/general/extension_types_feature_not_enabled.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,5 +0,0 @@
-class A {}
-
-extension type on A {}
-
-main() {}
diff --git a/pkg/front_end/testcases/general/function_call1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_call1.dart.textual_outline_modelled.expect
index 9249223..930a611 100644
--- a/pkg/front_end/testcases/general/function_call1.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_call1.dart.textual_outline_modelled.expect
@@ -1,19 +1,15 @@
class _Closure1 {
_Closure1 get call => this;
}
+
class _Closure2 {
_Closure2(this.call);
final _Closure2 call;
}
-test(_Closure1 foo, _Closure2 bar) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-_Closure1 closure1;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-_Closure2 closure2;
+
+late _Closure1 closure1;
+late _Closure2 closure2;
main() {}
+test(_Closure1 foo, _Closure2 bar) {}
var field1 = closure1();
var field2 = closure2();
diff --git a/pkg/front_end/testcases/general/function_call2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/function_call2.dart.textual_outline_modelled.expect
index eab5305..4b4ed48 100644
--- a/pkg/front_end/testcases/general/function_call2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/function_call2.dart.textual_outline_modelled.expect
@@ -1,19 +1,15 @@
class _Closure1 {
void Function() get call => () {};
}
+
class _Closure2 {
_Closure2(this.call);
final void Function() call;
}
-test(_Closure1 foo, _Closure2 bar) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-_Closure1 closure1;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-_Closure2 closure2;
+
+late _Closure1 closure1;
+late _Closure2 closure2;
main() {}
+test(_Closure1 foo, _Closure2 bar) {}
var field1 = closure1();
var field2 = closure2();
diff --git a/pkg/front_end/testcases/general/issue39344.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue39344.dart.textual_outline_modelled.expect
index 5eeda1d..5727c9d 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.textual_outline_modelled.expect
@@ -1,19 +1,16 @@
class A {}
+
class B extends A {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-List<B> xs;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-List<List<B>> xss;
+
class Class<T extends A> {
void method1a(T t) {}
void method1b(T t) {}
void method2a(T t) {}
void method2b(T t) {}
}
+
+late List<B> xs;
+late List<List<B>> xss;
void errors() {}
void main() {}
void throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/general/issue41842.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue41842.dart.textual_outline_modelled.expect
deleted file mode 100644
index 9f90691..0000000
--- a/pkg/front_end/testcases/general/issue41842.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,18 +0,0 @@
-import './issue41842_lib.dart' as lib;
-
-class A<T> {
- A();
- factory A.foo2(int x) = B.foo<T>;
- factory A.foo3(int x) = B<T>.foo;
- factory A.foo4(int x) = lib.Foo<T>;
- factory A.foo5(int x) = B.bar<T>;
- factory A.foo6(int x) = B<T>.bar;
- factory A.foo7(int x) = lib.Bar<T>;
-}
-
-class B<T> extends A<T> {
- B.foo(int x) {}
- factory B.bar(int x) => B.foo(x);
-}
-
-void main() {}
diff --git a/pkg/front_end/testcases/general/issue_46886.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue_46886.dart.textual_outline.expect
index ad7a346..ad2b313 100644
--- a/pkg/front_end/testcases/general/issue_46886.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/issue_46886.dart.textual_outline.expect
@@ -1,6 +1,6 @@
// @dart = 2.13
class Foo {
- Foo operator >>> (_) => this;
+ Foo operator >>>(_) => this;
}
extension on Symbol {
String operator >(_) => "Greater Than used";
diff --git a/pkg/front_end/testcases/general/issue_46886.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue_46886.dart.textual_outline_modelled.expect
deleted file mode 100644
index dab65d1..0000000
--- a/pkg/front_end/testcases/general/issue_46886.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,13 +0,0 @@
-// @dart = 2.13
-abstract class Bar implements List<List<List<String>>> {}
-
-class Foo {
- Foo operator >>>(_) => this;
-}
-
-extension on Symbol {
- String call(_) => "Called";
- String operator >(_) => "Greater Than used";
-}
-
-main() {}
diff --git a/pkg/front_end/testcases/general/many_errors2.dart.textual_outline.expect b/pkg/front_end/testcases/general/many_errors2.dart.textual_outline.expect
index 555c12a..740e5982 100644
--- a/pkg/front_end/testcases/general/many_errors2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/many_errors2.dart.textual_outline.expect
@@ -6,8 +6,7 @@
external foo(String x) {}
class B {}
class C {
- late
- B b;
+ late B b;
}
abstract class AbstractClass {
const AbstractClass.id();
diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect
index f367e69..94c1f73 100644
--- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect
@@ -1,12 +1,14 @@
class A {}
+
class B extends A {}
+
class C<T extends A> {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- T _field;
foo(T x) {}
+ late T _field;
}
+
class D extends C<B> {}
+
class Foo extends Object with C<B> {}
+
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
index beb5eea..9465953 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
@@ -2,10 +2,8 @@
List<T> get list;
void setList<T>(List<T> value);
}
+
class Bar implements Foo<int> {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- List<int> list;
+ late List<int> list;
void setList<int>(List<int> value) {}
}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
index 2967ac1..e231547a 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
@@ -15,13 +15,10 @@
static void foo12Prime(void Function(List<U>) b) {}
static void foo13(void Function(U b)) {}
static void foo13Prime(void Function(List<U> b)) {}
- static late U ;
- foo14;
- static late List<U> (){}
- foo14Prime;
- static late U ;
- Function(U) foo15;
- static late List<U> (){}
- Function(List<U>) foo15Prime;
+ static late U foo14;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late List<U> Function(List<U>) foo15Prime;
}
+
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
index 531ae41..ebf7d08 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
@@ -1,12 +1,12 @@
class Foo<U> {
static List<U> Function() foo8Prime() {}
- static List<U> Function(List<U>) foo15Prime = null;
- static List<U> foo14Prime = null;
static List<U> foo1Prime() {}
static U Function() foo8() {}
- static U Function(U) foo15 = null;
static U foo1() {}
- static U foo14 = null;
+ static late List<U> Function(List<U>) foo15Prime;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late U foo14;
static void Function(List<U>) foo9Prime() {}
static void Function(U) foo9() {}
static void foo10(U Function()) {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
index 650cef8..5a78960 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
@@ -15,13 +15,10 @@
static void foo12Prime(void Function(List<U>) b) {}
static void foo13(void Function(U b)) {}
static void foo13Prime(void Function(List<U> b)) {}
- static late U ;
- foo14;
- static late List<U> (){}
- foo14Prime;
- static late U ;
- Function(U) foo15;
- static late List<U> (){}
- Function(List<U>) foo15Prime;
+ static late U foo14;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late List<U> Function(List<U>) foo15Prime;
}
+
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
index 72cd4cf..601c17f 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
@@ -1,12 +1,12 @@
extension Foo<U> on List {
static List<U> Function() foo8Prime() {}
- static List<U> Function(List<U>) foo15Prime = null;
- static List<U> foo14Prime = null;
static List<U> foo1Prime() {}
static U Function() foo8() {}
- static U Function(U) foo15 = null;
static U foo1() {}
- static U foo14 = null;
+ static late List<U> Function(List<U>) foo15Prime;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late U foo14;
static void Function(List<U>) foo9Prime() {}
static void Function(U) foo9() {}
static void foo10(U Function()) {}
diff --git a/pkg/front_end/testcases/general/type_variable_in_static_context.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_variable_in_static_context.dart.textual_outline_modelled.expect
deleted file mode 100644
index 86ca952..0000000
--- a/pkg/front_end/testcases/general/type_variable_in_static_context.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,17 +0,0 @@
-class Class<T> {
- static A<A<T>>? method4<S extends A<A<T>>>(A<A<T>> arg) {}
- static A<B<T>>? method6<S extends A<B<T>>>(A<B<T>> arg) {}
- static A<T>? method3<S extends A<T>>(A<T> arg) {}
- static B<T>? method5<S extends B<T>>(B<T> arg) {}
- static Class<Class<T>>? method2<S extends Class<Class<T>>>(
- Class<Class<T>> arg) {}
- static Class<T>? method1<S extends Class<T>>(Class<T> arg) {}
- static T? method0<S extends T>(T arg) {}
- static void Function<S extends T>()?
- method7<U extends void Function<S extends T>()>(
- void Function<S extends T>() arg) {}
-}
-
-main() {}
-typedef A<T> = Class<T>;
-typedef B<T extends num> = Class<T>;
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
index 7720cab..b00f48b 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
@@ -1,6 +1,14 @@
+abstract class F<T> {
+ void foo7<Q extends T>(Q a, covariant num b, T c);
+ void foo8<Q extends T>(Q a, covariant num b, T c);
+}
+
class A<T> {}
+
class B extends A<String> {}
+
class C<T1, T2, T3> extends B {}
+
class D<P, Q> extends C<int, Q, P> {
D(tt) : foo = tt;
Map<P, Q> foo;
@@ -8,24 +16,21 @@
foo2(y) {}
foo3<T1, T2>(z) {}
}
-foo1(x) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-List<Iterable> globalVar;
-abstract class F<T> {
- void foo7<Q extends T>(Q a, covariant num b, T c);
- void foo8<Q extends T>(Q a, covariant num b, T c);
-}
+
class E<P extends String> {
factory E() => throw '';
void foo6<T extends P, U extends List<T>>(Map<T, U> map) {}
}
+
class G<T> {
void foo7<Q extends T>(Q a, int b, T c) {}
}
+
class H<T> extends G<T> implements F<T> {
void foo8<Q extends T>(Q a, int b, T c) {}
}
+
+foo1(x) {}
+late List<Iterable> globalVar;
main() {}
void foo5(x) {}
diff --git a/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline.expect
index 042fbfc..abe4f27 100644
--- a/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline.expect
@@ -1,25 +1,27 @@
class A {
- late
- num invariantField;
- covariant late num ;
- covariantField;
+ late num invariantField;
+ covariant late num covariantField;
}
+
abstract class B implements A {
get invariantField;
set invariantField(value);
get covariantField;
set covariantField(value);
}
+
abstract class C implements A {
int get invariantField;
void set invariantField(int value) {}
int get covariantField;
void set covariantField(int value) {}
}
+
abstract class D implements A {
int get invariantField;
void set invariantField(covariant int value) {}
int get covariantField;
void set covariantField(covariant int value) {}
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bc5284c
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/covariant_late_field.dart.textual_outline_modelled.expect
@@ -0,0 +1,27 @@
+abstract class B implements A {
+ get covariantField;
+ get invariantField;
+ set covariantField(value);
+ set invariantField(value);
+}
+
+abstract class C implements A {
+ int get covariantField;
+ int get invariantField;
+ void set covariantField(int value) {}
+ void set invariantField(int value) {}
+}
+
+abstract class D implements A {
+ int get covariantField;
+ int get invariantField;
+ void set covariantField(covariant int value) {}
+ void set invariantField(covariant int value) {}
+}
+
+class A {
+ covariant late num covariantField;
+ late num invariantField;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline.expect
index 2470729..80e8244 100644
--- a/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline.expect
@@ -1,38 +1,34 @@
abstract class A {
- late
- int property4;
- late
- int? property5;
- covariant late int ;
- property6;
+ late int property4;
+ late int? property5;
+ covariant late int property6;
A(this.property4, this.property5, this.property6);
}
+
abstract class B1 {
- late
- final int property4;
- late
- final int property5;
- late
- final int? property6;
+ late final int property4;
+ late final int property5;
+ late final int? property6;
B1(this.property4, this.property5, this.property6);
}
+
abstract class B2 implements B1 {
void set property4(int i);
void set property5(int? i);
void set property6(int i);
}
+
abstract class C1 {
- late
- int property4;
- late
- int property5;
- late
- int property6;
+ late int property4;
+ late int property5;
+ late int property6;
C1(this.property4, this.property5, this.property6);
}
+
abstract class C2 implements C1 {
int get property4;
int get property5;
int? get property6;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c07c6aa
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/getter_vs_setter_type.dart.textual_outline_modelled.expect
@@ -0,0 +1,34 @@
+abstract class A {
+ A(this.property4, this.property5, this.property6);
+ covariant late int property6;
+ late int? property5;
+ late int property4;
+}
+
+abstract class B1 {
+ B1(this.property4, this.property5, this.property6);
+ late final int? property6;
+ late final int property4;
+ late final int property5;
+}
+
+abstract class B2 implements B1 {
+ void set property4(int i);
+ void set property5(int? i);
+ void set property6(int i);
+}
+
+abstract class C1 {
+ C1(this.property4, this.property5, this.property6);
+ late int property4;
+ late int property5;
+ late int property6;
+}
+
+abstract class C2 implements C1 {
+ int? get property6;
+ int get property4;
+ int get property5;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline.expect
index 79846e2..15c8e0c 100644
--- a/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline.expect
@@ -1,8 +1,9 @@
class A {
int? field;
}
+
class B implements A {
- late ;
- var field;
+ late var field;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..15c8e0c
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/infer_late_field_type.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+class A {
+ int? field;
+}
+
+class B implements A {
+ late var field;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline.expect
index 6df6180..0e93330 100644
--- a/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline.expect
@@ -1,22 +1,24 @@
int nonNullableTopLevelFieldReads = 0;
-late
-final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0;
+late final int nonNullableTopLevelField =
+ nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0;
int nullableTopLevelFieldReads = 0;
-late
-final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0;
+late final int? nullableTopLevelField =
+ nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0;
+
class Class {
static int nonNullableStaticFieldReads = 0;
- static late ;
- final int nonNullableStaticField = nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0;
+ static late final int nonNullableStaticField =
+ nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0;
static int nullableStaticFieldReads = 0;
- static late ;
- final int? nullableStaticField = nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0;
+ static late final int? nullableStaticField =
+ nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0;
int nonNullableInstanceFieldReads = 0;
- late
- final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0;
+ late final int nonNullableInstanceField =
+ nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0;
int nullableInstanceFieldReads = 0;
- late
- final int? nullableInstanceField = nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0;
+ late final int? nullableInstanceField =
+ nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0;
}
+
void main() {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d0e2ca7
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/initializer_rewrite.dart.textual_outline_modelled.expect
@@ -0,0 +1,23 @@
+class Class {
+ int nonNullableInstanceFieldReads = 0;
+ int nullableInstanceFieldReads = 0;
+ late final int? nullableInstanceField =
+ nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0;
+ late final int nonNullableInstanceField =
+ nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0;
+ static int nonNullableStaticFieldReads = 0;
+ static int nullableStaticFieldReads = 0;
+ static late final int? nullableStaticField =
+ nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0;
+ static late final int nonNullableStaticField =
+ nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0;
+}
+
+int nonNullableTopLevelFieldReads = 0;
+int nullableTopLevelFieldReads = 0;
+late final int? nullableTopLevelField =
+ nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0;
+late final int nonNullableTopLevelField =
+ nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0;
+throws(f(), String message) {}
+void main() {}
diff --git a/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline.expect
index 6a82617..30d8446 100644
--- a/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline.expect
@@ -1,23 +1,33 @@
import 'initializer_rewrite_from_opt_out_lib.dart';
+
int nonNullableTopLevelFieldReads = 0;
-late
-final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField : computeInitialValue();
+late final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0
+ ? nonNullableTopLevelField
+ : computeInitialValue();
int nullableTopLevelFieldReads = 0;
-late
-final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField : computeInitialValue();
+late final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0
+ ? nullableTopLevelField
+ : computeInitialValue();
+
class Class {
static int nonNullableStaticFieldReads = 0;
- static late ;
- final int nonNullableStaticField = nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField : computeInitialValue();
+ static late final int nonNullableStaticField =
+ nonNullableStaticFieldReads++ == 0
+ ? nonNullableStaticField
+ : computeInitialValue();
static int nullableStaticFieldReads = 0;
- static late ;
- final int? nullableStaticField = nullableStaticFieldReads++ == 0 ? nullableStaticField : computeInitialValue();
+ static late final int? nullableStaticField = nullableStaticFieldReads++ == 0
+ ? nullableStaticField
+ : computeInitialValue();
int nonNullableInstanceFieldReads = 0;
- late
- final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField : computeInitialValue();
+ late final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0
+ ? nonNullableInstanceField
+ : computeInitialValue();
int nullableInstanceFieldReads = 0;
- late
- final int? nullableInstanceField = nullableInstanceFieldReads++ == 0 ? nullableInstanceField : computeInitialValue();
+ late final int? nullableInstanceField = nullableInstanceFieldReads++ == 0
+ ? nullableInstanceField
+ : computeInitialValue();
}
+
void main() {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..711cbdf
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/initializer_rewrite_from_opt_out.dart.textual_outline_modelled.expect
@@ -0,0 +1,32 @@
+import 'initializer_rewrite_from_opt_out_lib.dart';
+
+class Class {
+ int nonNullableInstanceFieldReads = 0;
+ int nullableInstanceFieldReads = 0;
+ late final int? nullableInstanceField = nullableInstanceFieldReads++ == 0
+ ? nullableInstanceField
+ : computeInitialValue();
+ late final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0
+ ? nonNullableInstanceField
+ : computeInitialValue();
+ static int nonNullableStaticFieldReads = 0;
+ static int nullableStaticFieldReads = 0;
+ static late final int? nullableStaticField = nullableStaticFieldReads++ == 0
+ ? nullableStaticField
+ : computeInitialValue();
+ static late final int nonNullableStaticField =
+ nonNullableStaticFieldReads++ == 0
+ ? nonNullableStaticField
+ : computeInitialValue();
+}
+
+int nonNullableTopLevelFieldReads = 0;
+int nullableTopLevelFieldReads = 0;
+late final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0
+ ? nullableTopLevelField
+ : computeInitialValue();
+late final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0
+ ? nonNullableTopLevelField
+ : computeInitialValue();
+throws(f(), String message) {}
+void main() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_field_with_initializer.dart.textual_outline_modelled.expect
index dc89fb9..ed79e71 100644
--- a/pkg/front_end/testcases/late_lowering/instance_field_with_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_field_with_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- int field = 10;
+ late int field = 10;
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
main() {}
test1() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_field_without_initializer.dart.textual_outline_modelled.expect
index 342930e..83f9d66 100644
--- a/pkg/front_end/testcases/late_lowering/instance_field_without_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_field_without_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- int field;
+ late int field;
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
main() {}
test1() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_final_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_final_field_without_initializer.dart.textual_outline_modelled.expect
index 21f03d0..6260a6a 100644
--- a/pkg/front_end/testcases/late_lowering/instance_final_field_without_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_final_field_without_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- final int field;
+ late final int field;
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
main() {}
test1() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_nullable_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_nullable_field_with_initializer.dart.textual_outline_modelled.expect
index f6e9106..a8b3488 100644
--- a/pkg/front_end/testcases/late_lowering/instance_nullable_field_with_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_nullable_field_with_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- int? field = initField();
+ late int? field = initField();
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
int? initField() => 10;
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_nullable_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_nullable_field_without_initializer.dart.textual_outline_modelled.expect
index 5750785..40645ff 100644
--- a/pkg/front_end/testcases/late_lowering/instance_nullable_field_without_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_nullable_field_without_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- int? field;
+ late int? field;
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
main() {}
test1() {}
diff --git a/pkg/front_end/testcases/late_lowering/instance_nullable_final_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/instance_nullable_final_field_without_initializer.dart.textual_outline_modelled.expect
index 196bf87..7546910 100644
--- a/pkg/front_end/testcases/late_lowering/instance_nullable_final_field_without_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/instance_nullable_final_field_without_initializer.dart.textual_outline_modelled.expect
@@ -1,19 +1,18 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
Class.constructor1();
Class.constructor2(this.field);
Class.constructor3(int value) : this.field = value + 1;
Class.constructor4([this.field = 42]);
- final int? field;
+ late final int? field;
}
+
class Subclass extends Class {
Subclass.constructor1() : super.constructor1();
Subclass.constructor2(int value) : super.constructor2(value);
Subclass.constructor3(int value) : super.constructor3(value);
Subclass.constructor4([int value = 87]) : super.constructor4(value);
}
+
expect(expected, actual) {}
main() {}
test1() {}
diff --git a/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline.expect
index f1b177b..886ac55 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline.expect
@@ -1,9 +1,8 @@
class C {
num pi = 3.14;
- late
- num p1 = this.pi;
- late ;
- final p2 = this.pi;
+ late num p1 = this.pi;
+ late final p2 = this.pi;
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3b80a04
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/issue40373.dart.textual_outline_modelled.expect
@@ -0,0 +1,8 @@
+class C {
+ late final p2 = this.pi;
+ late num p1 = this.pi;
+ num pi = 3.14;
+}
+
+expect(expected, actual) {}
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline.expect
index 7106834..777701a 100644
--- a/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-late ;
-final g;
+late final g;
+
class C {
- static late ;
- final s;
- late ;
- final v;
+ static late final s;
+ late final v;
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..50eca5b
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/issue40373b.dart.textual_outline_modelled.expect
@@ -0,0 +1,8 @@
+class C {
+ late final v;
+ static late final s;
+}
+
+expect(expected, actual) {}
+late final g;
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline.expect
index f2867b2..ec1d8d5 100644
--- a/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline.expect
@@ -1,8 +1,9 @@
main() {}
+
class C {
- covariant late ;
- final int x;
+ covariant late final int x;
}
+
class D extends C {
set x(num value) {}
}
diff --git a/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f06b890
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/issue40805.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+class C {
+ covariant late final int x;
+}
+
+class D extends C {
+ set x(num value) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/issue41436b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue41436b.dart.textual_outline_modelled.expect
index 8364103..b38c3b2 100644
--- a/pkg/front_end/testcases/late_lowering/issue41436b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/issue41436b.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
abstract class A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int x;
+ late int x;
}
+
class _B implements A {
int x = 3;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline.expect
index 65ad27a..aa8ff97 100644
--- a/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline.expect
@@ -1,10 +1,10 @@
bool _called = false;
String init(String val) {}
+
class C {
- static late String;
- operator? (){}
- s = init("lateValue");
+ static late String? s = init("lateValue");
}
+
main() {}
expect(expected, actual) {}
throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..94694b5
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/issue41922.dart.textual_outline_modelled.expect
@@ -0,0 +1,10 @@
+String init(String val) {}
+bool _called = false;
+
+class C {
+ static late String? s = init("lateValue");
+}
+
+expect(expected, actual) {}
+main() {}
+throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/late_lowering/issue42407.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/issue42407.dart.textual_outline_modelled.expect
index fe9c799..7861b1b 100644
--- a/pkg/front_end/testcases/late_lowering/issue42407.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/issue42407.dart.textual_outline_modelled.expect
@@ -1,14 +1,13 @@
class A<T> {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- T x;
+ late T x;
}
+
class B<T> {
T? _y;
T? get y => _y;
set y(T? val) {}
}
+
expect(expected, actual) {}
main() {}
throws(void Function() f) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline.expect
index e124df6..5a8484a 100644
--- a/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline.expect
@@ -1,70 +1,55 @@
class Annotation {
const Annotation();
}
+
@Annotation()
-late
-int topLevelField;
+late int topLevelField;
@Annotation()
-late
-final int finalTopLevelField;
+late final int finalTopLevelField;
@Annotation()
-late
-final int finalTopLevelFieldWithInitializer = 0;
+late final int finalTopLevelFieldWithInitializer = 0;
+
class A {
@Annotation()
- late
- int instanceField;
+ late int instanceField;
@Annotation()
- late
- final int finalInstanceField;
+ late final int finalInstanceField;
@Annotation()
- late
- final int finalInstanceFieldWithInitializer = 0;
+ late final int finalInstanceFieldWithInitializer = 0;
@Annotation()
- covariant late num ;
- covariantInstanceField;
+ covariant late num covariantInstanceField;
@Annotation()
- static late int ;
- staticField;
+ static late int staticField;
@Annotation()
- static late ;
- final int finalStaticField;
+ static late final int finalStaticField;
@Annotation()
- static late ;
- final int finalStaticFieldWithInitializer = 0;
+ static late final int finalStaticFieldWithInitializer = 0;
}
+
mixin B {
@Annotation()
- late
- int instanceField;
+ late int instanceField;
@Annotation()
- late
- final int finalInstanceField;
+ late final int finalInstanceField;
@Annotation()
- late
- final int finalInstanceFieldWithInitializer = 0;
+ late final int finalInstanceFieldWithInitializer = 0;
@Annotation()
- covariant late num ;
- covariantInstanceField;
+ covariant late num covariantInstanceField;
@Annotation()
- static late int ;
- staticField;
+ static late int staticField;
@Annotation()
- static late ;
- final int finalStaticField;
+ static late final int finalStaticField;
@Annotation()
- static late ;
- final int finalStaticFieldWithInitializer = 0;
+ static late final int finalStaticFieldWithInitializer = 0;
}
+
extension Extension on A {
@Annotation()
- static late int ;
- extensionStaticField;
+ static late int extensionStaticField;
@Annotation()
- static late ;
- final int finalExtensionStaticField;
+ static late final int finalExtensionStaticField;
@Annotation()
- static late ;
- final int finalExtensionStaticFieldWithInitializer = 0;
+ static late final int finalExtensionStaticFieldWithInitializer = 0;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..37d1b59
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.textual_outline_modelled.expect
@@ -0,0 +1,53 @@
+class A {
+ @Annotation()
+ covariant late num covariantInstanceField;
+ @Annotation()
+ late final int finalInstanceField;
+ @Annotation()
+ late final int finalInstanceFieldWithInitializer = 0;
+ @Annotation()
+ late int instanceField;
+ @Annotation()
+ static late final int finalStaticField;
+ @Annotation()
+ static late final int finalStaticFieldWithInitializer = 0;
+ @Annotation()
+ static late int staticField;
+}
+
+class Annotation {
+ const Annotation();
+}
+
+extension Extension on A {
+ @Annotation()
+ static late final int finalExtensionStaticField;
+ @Annotation()
+ static late final int finalExtensionStaticFieldWithInitializer = 0;
+ @Annotation()
+ static late int extensionStaticField;
+}
+
+@Annotation()
+late final int finalTopLevelField;
+@Annotation()
+late final int finalTopLevelFieldWithInitializer = 0;
+@Annotation()
+late int topLevelField;
+main() {}
+mixin B {
+ @Annotation()
+ covariant late num covariantInstanceField;
+ @Annotation()
+ late final int finalInstanceField;
+ @Annotation()
+ late final int finalInstanceFieldWithInitializer = 0;
+ @Annotation()
+ late int instanceField;
+ @Annotation()
+ static late final int finalStaticField;
+ @Annotation()
+ static late final int finalStaticFieldWithInitializer = 0;
+ @Annotation()
+ static late int staticField;
+}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline.expect
index 51dbe44..37b9f3a 100644
--- a/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline.expect
@@ -1,22 +1,19 @@
int? method() => null;
-late ;
-var nonNullableTopLevelField = 0;
-late ;
-var nullableTopLevelField = method();
+late var nonNullableTopLevelField = 0;
+late var nullableTopLevelField = method();
+
class A {
- late ;
- var nonNullableInstanceField = 0;
- late ;
- var nullableInstanceField = method();
- static late ;
- var nonNullableStaticField = 0;
- static late ;
- var nullableStaticField = method();
+ late var nonNullableInstanceField = 0;
+ late var nullableInstanceField = method();
+ static late var nonNullableStaticField = 0;
+ static late var nullableStaticField = method();
}
+
class B extends A {
get nonNullableInstanceField => 0;
set nonNullableInstanceField(value) {}
get nullableInstanceField => 0;
set nullableInstanceField(value) {}
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..5ba8470
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_field_inference.dart.textual_outline_modelled.expect
@@ -0,0 +1,18 @@
+class A {
+ late var nonNullableInstanceField = 0;
+ late var nullableInstanceField = method();
+ static late var nonNullableStaticField = 0;
+ static late var nullableStaticField = method();
+}
+
+class B extends A {
+ get nonNullableInstanceField => 0;
+ get nullableInstanceField => 0;
+ set nonNullableInstanceField(value) {}
+ set nullableInstanceField(value) {}
+}
+
+int? method() => null;
+late var nonNullableTopLevelField = 0;
+late var nullableTopLevelField = method();
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline.expect
index 40fa799..5d7693b 100644
--- a/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline.expect
@@ -1,27 +1,22 @@
-late
-int lateTopLevelField1 = 123;
+late int lateTopLevelField1 = 123;
+
class Class<T> {
- static late int ;
- lateStaticField1 = 87;
- static late int ;
- lateStaticField2 = 42;
+ static late int lateStaticField1 = 87;
+ static late int lateStaticField2 = 42;
static staticMethod() {}
- late
- int lateInstanceField = 16;
+ late int lateInstanceField = 16;
final T field;
- late
- T lateGenericField1 = field;
- late
- T lateGenericField2 = field;
+ late T lateGenericField1 = field;
+ late T lateGenericField2 = field;
Class(this.field);
instanceMethod(T value) {}
}
+
extension Extension<T> on Class<T> {
- static late int ;
- lateExtensionField1 = 87;
- static late int ;
- lateExtensionField2 = 42;
+ static late int lateExtensionField1 = 87;
+ static late int lateExtensionField2 = 42;
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0dae584
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_field_with_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,22 @@
+class Class<T> {
+ Class(this.field);
+ final T field;
+ instanceMethod(T value) {}
+ late T lateGenericField1 = field;
+ late T lateGenericField2 = field;
+ late int lateInstanceField = 16;
+ static late int lateStaticField1 = 87;
+ static late int lateStaticField2 = 42;
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static late int lateExtensionField1 = 87;
+ static late int lateExtensionField2 = 42;
+ static staticMethod() {}
+}
+
+late int lateTopLevelField1 = 123;
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline.expect
index 45d52d8..72dff0f 100644
--- a/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline.expect
@@ -1,24 +1,20 @@
-late
-int lateTopLevelField;
+late int lateTopLevelField;
+
class Class<T> {
- static late int ;
- lateStaticField1;
- static late int ;
- lateStaticField2;
+ static late int lateStaticField1;
+ static late int lateStaticField2;
static staticMethod() {}
- late
- int lateInstanceField;
- late
- T lateGenericInstanceField;
+ late int lateInstanceField;
+ late T lateGenericInstanceField;
instanceMethod(T value) {}
}
+
extension Extension<T> on Class<T> {
- static late int ;
- lateExtensionField1;
- static late int ;
- lateExtensionField2;
+ static late int lateExtensionField1;
+ static late int lateExtensionField2;
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3672948
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_field_without_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,20 @@
+class Class<T> {
+ instanceMethod(T value) {}
+ late T lateGenericInstanceField;
+ late int lateInstanceField;
+ static late int lateStaticField1;
+ static late int lateStaticField2;
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static late int lateExtensionField1;
+ static late int lateExtensionField2;
+ static staticMethod() {}
+}
+
+late int lateTopLevelField;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline.expect
index 08e1682..b2771e4 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline.expect
@@ -2,48 +2,45 @@
final int x;
B(this.x);
}
+
class C extends B {
- late ;
- final y = x + 1;
+ late final y = x + 1;
C(int x) : super(x);
method() => x;
}
+
int? lateTopLevelField1Init;
int initLateTopLevelField1(int value) {}
-late
-final int lateTopLevelField1 = initLateTopLevelField1(123);
+late final int lateTopLevelField1 = initLateTopLevelField1(123);
+
class Class<T> {
static int? lateStaticField1Init;
static int initLateStaticField1(int value) {}
- static late ;
- final int lateStaticField1 = initLateStaticField1(87);
+ static late final int lateStaticField1 = initLateStaticField1(87);
static int? lateStaticField2Init;
static int initLateStaticField2(int value) {}
- static late ;
- final int lateStaticField2 = initLateStaticField2(42);
+ static late final int lateStaticField2 = initLateStaticField2(42);
static staticMethod() {}
int? lateInstanceFieldInit;
int initLateInstanceField(int value) {}
- late
- final int lateInstanceField = initLateInstanceField(16);
+ late final int lateInstanceField = initLateInstanceField(16);
T? lateGenericFieldInit;
T initLateGenericField(T value) {}
final T field;
- late
- final T lateGenericField = initLateGenericField(field);
+ late final T lateGenericField = initLateGenericField(field);
Class(this.field);
instanceMethod() {}
}
+
extension Extension<T> on Class<T> {
static int? lateExtensionField1Init;
static int initLateExtensionField1(int value) {}
- static late ;
- final int lateExtensionField1 = initLateExtensionField1(87);
+ static late final int lateExtensionField1 = initLateExtensionField1(87);
static int? lateExtensionField2Init;
static int initLateExtensionField2(int value) {}
- static late ;
- final int lateExtensionField2 = initLateExtensionField2(42);
+ static late final int lateExtensionField2 = initLateExtensionField2(42);
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0c12053
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_final_field_with_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,46 @@
+class B {
+ B(this.x);
+ final int x;
+}
+
+class C extends B {
+ C(int x) : super(x);
+ late final y = x + 1;
+ method() => x;
+}
+
+class Class<T> {
+ Class(this.field);
+ T? lateGenericFieldInit;
+ T initLateGenericField(T value) {}
+ final T field;
+ instanceMethod() {}
+ int? lateInstanceFieldInit;
+ int initLateInstanceField(int value) {}
+ late final T lateGenericField = initLateGenericField(field);
+ late final int lateInstanceField = initLateInstanceField(16);
+ static int? lateStaticField1Init;
+ static int? lateStaticField2Init;
+ static int initLateStaticField1(int value) {}
+ static int initLateStaticField2(int value) {}
+ static late final int lateStaticField1 = initLateStaticField1(87);
+ static late final int lateStaticField2 = initLateStaticField2(42);
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static int? lateExtensionField1Init;
+ static int? lateExtensionField2Init;
+ static int initLateExtensionField1(int value) {}
+ static int initLateExtensionField2(int value) {}
+ static late final int lateExtensionField1 = initLateExtensionField1(87);
+ static late final int lateExtensionField2 = initLateExtensionField2(42);
+ static staticMethod() {}
+}
+
+int? lateTopLevelField1Init;
+int initLateTopLevelField1(int value) {}
+late final int lateTopLevelField1 = initLateTopLevelField1(123);
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline.expect
index 7a7f054..4b9f7ea 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline.expect
@@ -1,22 +1,19 @@
-late
-final int lateTopLevelField;
+late final int lateTopLevelField;
+
class Class {
- static late ;
- final int lateStaticField1;
- static late ;
- final int lateStaticField2;
+ static late final int lateStaticField1;
+ static late final int lateStaticField2;
static staticMethod() {}
- late
- final int lateInstanceField;
+ late final int lateInstanceField;
instanceMethod() {}
}
+
extension Extension on Class {
- static late ;
- final int lateExtensionField1;
- static late ;
- final int lateExtensionField2;
+ static late final int lateExtensionField1;
+ static late final int lateExtensionField2;
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d640950
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_final_field_without_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,19 @@
+class Class {
+ instanceMethod() {}
+ late final int lateInstanceField;
+ static late final int lateStaticField1;
+ static late final int lateStaticField2;
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension on Class {
+ static late final int lateExtensionField1;
+ static late final int lateExtensionField2;
+ static staticMethod() {}
+}
+
+late final int lateTopLevelField;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline.expect
index 14bd840..521821c 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline.expect
@@ -1,39 +1,35 @@
int? lateTopLevelField1Init;
int? initLateTopLevelField1(int value) {}
-late
-final int? lateTopLevelField1 = initLateTopLevelField1(123);
+late final int? lateTopLevelField1 = initLateTopLevelField1(123);
+
class Class<T> {
static int? lateStaticField1Init;
static int? initLateStaticField1(int value) {}
- static late ;
- final int? lateStaticField1 = initLateStaticField1(87);
+ static late final int? lateStaticField1 = initLateStaticField1(87);
static int? lateStaticField2Init;
static int? initLateStaticField2(int value) {}
- static late ;
- final int? lateStaticField2 = initLateStaticField2(42);
+ static late final int? lateStaticField2 = initLateStaticField2(42);
static staticMethod() {}
int? lateInstanceFieldInit;
int? initLateInstanceField(int value) {}
- late
- final int? lateInstanceField = initLateInstanceField(16);
+ late final int? lateInstanceField = initLateInstanceField(16);
T? lateGenericInstanceFieldInit;
T? initLateGenericInstanceField(T? value) {}
final T? field;
- late
- final T? lateGenericInstanceField = initLateGenericInstanceField(field);
+ late final T? lateGenericInstanceField = initLateGenericInstanceField(field);
Class(this.field);
instanceMethod() {}
}
+
extension Extension<T> on Class<T> {
static int? lateExtensionField1Init;
static int? initLateExtensionField1(int value) {}
- static late ;
- final int? lateExtensionField1 = initLateExtensionField1(87);
+ static late final int? lateExtensionField1 = initLateExtensionField1(87);
static int? lateExtensionField2Init;
static int? initLateExtensionField2(int value) {}
- static late ;
- final int? lateExtensionField2 = initLateExtensionField2(42);
+ static late final int? lateExtensionField2 = initLateExtensionField2(42);
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a5b6772
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_with_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,35 @@
+class Class<T> {
+ Class(this.field);
+ T? initLateGenericInstanceField(T? value) {}
+ T? lateGenericInstanceFieldInit;
+ final T? field;
+ instanceMethod() {}
+ int? initLateInstanceField(int value) {}
+ int? lateInstanceFieldInit;
+ late final T? lateGenericInstanceField = initLateGenericInstanceField(field);
+ late final int? lateInstanceField = initLateInstanceField(16);
+ static int? initLateStaticField1(int value) {}
+ static int? initLateStaticField2(int value) {}
+ static int? lateStaticField1Init;
+ static int? lateStaticField2Init;
+ static late final int? lateStaticField1 = initLateStaticField1(87);
+ static late final int? lateStaticField2 = initLateStaticField2(42);
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static int? initLateExtensionField1(int value) {}
+ static int? initLateExtensionField2(int value) {}
+ static int? lateExtensionField1Init;
+ static int? lateExtensionField2Init;
+ static late final int? lateExtensionField1 = initLateExtensionField1(87);
+ static late final int? lateExtensionField2 = initLateExtensionField2(42);
+ static staticMethod() {}
+}
+
+int? initLateTopLevelField1(int value) {}
+int? lateTopLevelField1Init;
+late final int? lateTopLevelField1 = initLateTopLevelField1(123);
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline.expect
index 8837f31..24469b3 100644
--- a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline.expect
@@ -1,24 +1,20 @@
-late
-final int? lateTopLevelField;
+late final int? lateTopLevelField;
+
class Class<T> {
- static late ;
- final int? lateStaticField1;
- static late ;
- final int? lateStaticField2;
+ static late final int? lateStaticField1;
+ static late final int? lateStaticField2;
static staticMethod() {}
- late
- final int? lateInstanceField;
- late
- final T? lateGenericInstanceField;
+ late final int? lateInstanceField;
+ late final T? lateGenericInstanceField;
instanceMethod(T value) {}
}
+
extension Extension<T> on Class<T> {
- static late ;
- final int? lateExtensionField1;
- static late ;
- final int? lateExtensionField2;
+ static late final int? lateExtensionField1;
+ static late final int? lateExtensionField2;
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3e55c87
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_final_nullable_field_without_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,20 @@
+class Class<T> {
+ instanceMethod(T value) {}
+ late final T? lateGenericInstanceField;
+ late final int? lateInstanceField;
+ static late final int? lateStaticField1;
+ static late final int? lateStaticField2;
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static late final int? lateExtensionField1;
+ static late final int? lateExtensionField2;
+ static staticMethod() {}
+}
+
+late final int? lateTopLevelField;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline.expect
index 234fa27..4503df1 100644
--- a/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline.expect
@@ -1,33 +1,25 @@
import 'dart:async';
+
FutureOr method1() => null;
FutureOr? method2() => null;
FutureOr<dynamic> method3() => null;
FutureOr<int> method4() => 0;
FutureOr<int?> method5() => null;
FutureOr<int?>? method6() => null;
-late ;
-var field1 = method1();
-late ;
-var field2 = method2();
-late ;
-var field3 = method3();
-late ;
-var field4 = method4();
-late ;
-var field5 = method5();
-late ;
-var field6 = method6();
+late var field1 = method1();
+late var field2 = method2();
+late var field3 = method3();
+late var field4 = method4();
+late var field5 = method5();
+late var field6 = method6();
+
class C<T> {
- late
- FutureOr field1;
- late
- FutureOr? field2;
- late
- FutureOr<T> field3;
- late
- FutureOr<T?> field4;
- late
- FutureOr<T?>? field5;
+ late FutureOr field1;
+ late FutureOr? field2;
+ late FutureOr<T> field3;
+ late FutureOr<T?> field4;
+ late FutureOr<T?>? field5;
method() {}
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f8e8d07
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_future_or.dart.textual_outline_modelled.expect
@@ -0,0 +1,25 @@
+import 'dart:async';
+
+FutureOr<dynamic> method3() => null;
+FutureOr<int> method4() => 0;
+FutureOr<int?>? method6() => null;
+FutureOr<int?> method5() => null;
+FutureOr? method2() => null;
+FutureOr method1() => null;
+
+class C<T> {
+ late FutureOr<T> field3;
+ late FutureOr<T?>? field5;
+ late FutureOr<T?> field4;
+ late FutureOr? field2;
+ late FutureOr field1;
+ method() {}
+}
+
+late var field1 = method1();
+late var field2 = method2();
+late var field3 = method3();
+late var field4 = method4();
+late var field5 = method5();
+late var field6 = method6();
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline.expect
index f3cbcfe..9d5a01c 100644
--- a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline.expect
@@ -1,28 +1,17 @@
main() {}
method() {}
-late
-int uninitializedNonFinalTopLevelField;
-late
-final int uninitializedFinalTopLevelField;
-late
-int initializedNonFinalTopLevelField = 0;
-late
-final int initializedFinalTopLevelField = 0;
+late int uninitializedNonFinalTopLevelField;
+late final int uninitializedFinalTopLevelField;
+late int initializedNonFinalTopLevelField = 0;
+late final int initializedFinalTopLevelField = 0;
+
class Class {
- static late int ;
- uninitializedNonFinalStaticField;
- static late ;
- final int uninitializedFinalStaticField;
- static late int ;
- initializedNonFinalStaticField = 0;
- static late ;
- final int initializedFinalStaticField = 0;
- late
- int uninitializedNonFinalInstanceField;
- late
- final int uninitializedFinalInstanceField;
- late
- int initializedNonFinalInstanceField = 0;
- late
- final int initializedFinalInstanceField = 0;
+ static late int uninitializedNonFinalStaticField;
+ static late final int uninitializedFinalStaticField;
+ static late int initializedNonFinalStaticField = 0;
+ static late final int initializedFinalStaticField = 0;
+ late int uninitializedNonFinalInstanceField;
+ late final int uninitializedFinalInstanceField;
+ late int initializedNonFinalInstanceField = 0;
+ late final int initializedFinalInstanceField = 0;
}
diff --git a/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f8574e0
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_lowering_bitmasks.dart.textual_outline_modelled.expect
@@ -0,0 +1,17 @@
+class Class {
+ late final int initializedFinalInstanceField = 0;
+ late final int uninitializedFinalInstanceField;
+ late int initializedNonFinalInstanceField = 0;
+ late int uninitializedNonFinalInstanceField;
+ static late final int initializedFinalStaticField = 0;
+ static late final int uninitializedFinalStaticField;
+ static late int initializedNonFinalStaticField = 0;
+ static late int uninitializedNonFinalStaticField;
+}
+
+late final int initializedFinalTopLevelField = 0;
+late final int uninitializedFinalTopLevelField;
+late int initializedNonFinalTopLevelField = 0;
+late int uninitializedNonFinalTopLevelField;
+main() {}
+method() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline.expect
index 83b91b4..9bad8a8 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline.expect
@@ -1,36 +1,28 @@
int? lateTopLevelField1Init() => 123;
-late
-int? lateTopLevelField1 = lateTopLevelField1Init();
+late int? lateTopLevelField1 = lateTopLevelField1Init();
+
class Class<T> {
static int? lateStaticField1Init() => 87;
- static late int;
- operator? (){}
- lateStaticField1 = lateStaticField1Init();
+ static late int? lateStaticField1 = lateStaticField1Init();
static int? lateStaticField2Init() => 42;
- static late int;
- operator? (){}
- lateStaticField2 = lateStaticField2Init();
+ static late int? lateStaticField2 = lateStaticField2Init();
static staticMethod() {}
int? lateInstanceFieldInit() => 16;
- late
- int? lateInstanceField = lateInstanceFieldInit();
+ late int? lateInstanceField = lateInstanceFieldInit();
final T? field;
T? lateGenericInstanceFieldInit() => field;
- late
- T? lateGenericInstanceField = lateGenericInstanceFieldInit();
+ late T? lateGenericInstanceField = lateGenericInstanceFieldInit();
Class(this.field);
instanceMethod(T? value) {}
}
+
extension Extension<T> on Class<T> {
static int? lateExtensionField1Init() => 87;
- static late int;
- operator? (){}
- lateExtensionField1 = lateExtensionField1Init();
+ static late int? lateExtensionField1 = lateExtensionField1Init();
static int? lateExtensionField2Init() => 42;
- static late int;
- operator? (){}
- lateExtensionField2 = lateExtensionField2Init();
+ static late int? lateExtensionField2 = lateExtensionField2Init();
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..77764d0
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_field_with_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,28 @@
+class Class<T> {
+ Class(this.field);
+ T? lateGenericInstanceFieldInit() => field;
+ final T? field;
+ instanceMethod(T? value) {}
+ int? lateInstanceFieldInit() => 16;
+ late T? lateGenericInstanceField = lateGenericInstanceFieldInit();
+ late int? lateInstanceField = lateInstanceFieldInit();
+ static int? lateStaticField1Init() => 87;
+ static int? lateStaticField2Init() => 42;
+ static late int? lateStaticField1 = lateStaticField1Init();
+ static late int? lateStaticField2 = lateStaticField2Init();
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static int? lateExtensionField1Init() => 87;
+ static int? lateExtensionField2Init() => 42;
+ static late int? lateExtensionField1 = lateExtensionField1Init();
+ static late int? lateExtensionField2 = lateExtensionField2Init();
+ static staticMethod() {}
+}
+
+int? lateTopLevelField1Init() => 123;
+late int? lateTopLevelField1 = lateTopLevelField1Init();
+main() {}
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline.expect
index d0cb971..9aaec8d 100644
--- a/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline.expect
@@ -1,28 +1,20 @@
-late
-int? lateTopLevelField;
+late int? lateTopLevelField;
+
class Class<T> {
- static late int;
- operator? (){}
- lateStaticField1;
- static late int;
- operator? (){}
- lateStaticField2;
+ static late int? lateStaticField1;
+ static late int? lateStaticField2;
static staticMethod() {}
- late
- int? lateInstanceField;
- late
- T? lateGenericInstanceField;
+ late int? lateInstanceField;
+ late T? lateGenericInstanceField;
instanceMethod(T? value) {}
}
+
extension Extension<T> on Class<T> {
- static late int;
- operator? (){}
- lateExtensionField1;
- static late int;
- operator? (){}
- lateExtensionField2;
+ static late int? lateExtensionField1;
+ static late int? lateExtensionField2;
static staticMethod() {}
}
+
main() {}
expect(expected, actual) {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9bac5c0
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/late_nullable_field_without_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,20 @@
+class Class<T> {
+ instanceMethod(T? value) {}
+ late T? lateGenericInstanceField;
+ late int? lateInstanceField;
+ static late int? lateStaticField1;
+ static late int? lateStaticField2;
+ static staticMethod() {}
+}
+
+expect(expected, actual) {}
+
+extension Extension<T> on Class<T> {
+ static late int? lateExtensionField1;
+ static late int? lateExtensionField2;
+ static staticMethod() {}
+}
+
+late int? lateTopLevelField;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/late_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/late_override.dart.textual_outline_modelled.expect
index 61b08f4..8f2ef96 100644
--- a/pkg/front_end/testcases/late_lowering/late_override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/late_override.dart.textual_outline_modelled.expect
@@ -2,10 +2,9 @@
int get implementedLateFieldDeclaredGetterSetter => 0;
void set implementedLateFieldDeclaredGetterSetter(int value) {}
}
+
class Interface {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int implementedLateFieldDeclaredGetterSetter;
+ late int implementedLateFieldDeclaredGetterSetter;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/later.dart.textual_outline.expect
index ec9372a..a233f48 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.textual_outline.expect
@@ -1,8 +1,7 @@
// @dart = 2.9999
class A {
int a = 42;
- late
- int b = (this.a * 2) >> 1;
+ late int b = (this.a * 2) >> 1;
foo(late int x) {}
}
bar(late int x) {}
@@ -10,13 +9,11 @@
hest() async {}
fisk() async {}
class B {
- late
- final int x = 42;
+ late final int x = 42;
const B();
}
class C {
- late
- final int x;
+ late final int x;
initVars() {}
}
main() {}
diff --git a/pkg/front_end/testcases/late_lowering/override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/override.dart.textual_outline_modelled.expect
index 42e50bd..985d234 100644
--- a/pkg/front_end/testcases/late_lowering/override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/override.dart.textual_outline_modelled.expect
@@ -1,45 +1,23 @@
class Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int field1;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int field2;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int field3;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int field4;
+ late final int field3;
+ late final int field4;
+ late int field1;
+ late int field2;
}
+
class SubClass extends Class {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int field1;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int field2 = 0;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int field3;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int field4 = 0;
int get directField1 => super.field1;
int get directField2 => super.field2;
int get directField3 => super.field3;
int get directField4 => super.field4;
+ late final int field3;
+ late final int field4 = 0;
+ late int field1;
+ late int field2 = 0;
void set directField1(int value) {}
void set directField2(int value) {}
}
+
expect(expected, actual) {}
main() {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/override_getter_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/override_getter_setter.dart.textual_outline_modelled.expect
index 5650775..ef120ac 100644
--- a/pkg/front_end/testcases/late_lowering/override_getter_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/override_getter_setter.dart.textual_outline_modelled.expect
@@ -1,27 +1,18 @@
class A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int x;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int? y;
+ late final int? y;
+ late final int x;
}
+
class B extends A {
int? get y => 1;
int get x => 1;
}
+
class C extends A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int x = 2;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int? y = 2;
+ late final int? y = 2;
+ late final int x = 2;
}
+
expect(expected, actual) {}
main() {}
throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline.expect
index f3cbcfe..9d5a01c 100644
--- a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline.expect
@@ -1,28 +1,17 @@
main() {}
method() {}
-late
-int uninitializedNonFinalTopLevelField;
-late
-final int uninitializedFinalTopLevelField;
-late
-int initializedNonFinalTopLevelField = 0;
-late
-final int initializedFinalTopLevelField = 0;
+late int uninitializedNonFinalTopLevelField;
+late final int uninitializedFinalTopLevelField;
+late int initializedNonFinalTopLevelField = 0;
+late final int initializedFinalTopLevelField = 0;
+
class Class {
- static late int ;
- uninitializedNonFinalStaticField;
- static late ;
- final int uninitializedFinalStaticField;
- static late int ;
- initializedNonFinalStaticField = 0;
- static late ;
- final int initializedFinalStaticField = 0;
- late
- int uninitializedNonFinalInstanceField;
- late
- final int uninitializedFinalInstanceField;
- late
- int initializedNonFinalInstanceField = 0;
- late
- final int initializedFinalInstanceField = 0;
+ static late int uninitializedNonFinalStaticField;
+ static late final int uninitializedFinalStaticField;
+ static late int initializedNonFinalStaticField = 0;
+ static late final int initializedFinalStaticField = 0;
+ late int uninitializedNonFinalInstanceField;
+ late final int uninitializedFinalInstanceField;
+ late int initializedNonFinalInstanceField = 0;
+ late final int initializedFinalInstanceField = 0;
}
diff --git a/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f8574e0
--- /dev/null
+++ b/pkg/front_end/testcases/late_lowering/skip_late_final_uninitialized_instance_fields/main.dart.textual_outline_modelled.expect
@@ -0,0 +1,17 @@
+class Class {
+ late final int initializedFinalInstanceField = 0;
+ late final int uninitializedFinalInstanceField;
+ late int initializedNonFinalInstanceField = 0;
+ late int uninitializedNonFinalInstanceField;
+ static late final int initializedFinalStaticField = 0;
+ static late final int uninitializedFinalStaticField;
+ static late int initializedNonFinalStaticField = 0;
+ static late int uninitializedNonFinalStaticField;
+}
+
+late final int initializedFinalTopLevelField = 0;
+late final int uninitializedFinalTopLevelField;
+late int initializedNonFinalTopLevelField = 0;
+late int uninitializedNonFinalTopLevelField;
+main() {}
+method() {}
diff --git a/pkg/front_end/testcases/late_lowering/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
index 16afc20..7ac9d0c 100644
--- a/pkg/front_end/testcases/late_lowering/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
@@ -1,9 +1,7 @@
class A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
A.bar();
A.foo(this.x);
- int x;
+ late int x;
}
+
main() {}
diff --git a/pkg/front_end/testcases/late_lowering_sentinel/late_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/late_lowering_sentinel/late_fields.dart.textual_outline_modelled.expect
index 8b9ef40..dee46f9 100644
--- a/pkg/front_end/testcases/late_lowering_sentinel/late_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/late_lowering_sentinel/late_fields.dart.textual_outline_modelled.expect
@@ -1,37 +1,10 @@
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int? nullableTopLevelField;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int nonNullableTopLevelField;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int? nullableTopLevelFieldWithInitializer = null;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int nonNullableTopLevelFieldWithInitializer = 0;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int? nullableFinalTopLevelField;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int nonNullableFinalTopLevelField;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int? nullableFinalTopLevelFieldWithInitializer = null;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int nonNullableFinalTopLevelFieldWithInitializer = 0;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-Never neverTopLevelField;
+late Never neverTopLevelField;
+late final int? nullableFinalTopLevelField;
+late final int? nullableFinalTopLevelFieldWithInitializer = null;
+late final int nonNullableFinalTopLevelField;
+late final int nonNullableFinalTopLevelFieldWithInitializer = 0;
+late int? nullableTopLevelField;
+late int? nullableTopLevelFieldWithInitializer = null;
+late int nonNullableTopLevelField;
+late int nonNullableTopLevelFieldWithInitializer = 0;
main() {}
diff --git a/pkg/front_end/testcases/nnbd/abstract_field_errors.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/abstract_field_errors.dart.textual_outline.expect
index a2e1e46..539c274 100644
--- a/pkg/front_end/testcases/nnbd/abstract_field_errors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/abstract_field_errors.dart.textual_outline.expect
@@ -8,16 +8,14 @@
A(this.initializedField1) : this.initializedField2 = 0;
abstract static int staticField;
abstract static final int finalStaticField;
- abstract late int ;
- lateInstanceField;
+ abstract late int lateInstanceField;
external abstract int externalInstanceField1;
external abstract final int externalFinalInstanceField1;
external abstract covariant num externalCovariantInstanceField1;
abstract external int externalInstanceField2;
abstract external final int externalFinalInstanceField2;
abstract external covariant num externalCovariantInstanceField2;
- external abstract late int ;
- externalLateInstanceField;
+ external abstract late int externalLateInstanceField;
}
mixin B {
abstract static int staticField;
diff --git a/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline.expect
index 042fbfc..abe4f27 100644
--- a/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline.expect
@@ -1,25 +1,27 @@
class A {
- late
- num invariantField;
- covariant late num ;
- covariantField;
+ late num invariantField;
+ covariant late num covariantField;
}
+
abstract class B implements A {
get invariantField;
set invariantField(value);
get covariantField;
set covariantField(value);
}
+
abstract class C implements A {
int get invariantField;
void set invariantField(int value) {}
int get covariantField;
void set covariantField(int value) {}
}
+
abstract class D implements A {
int get invariantField;
void set invariantField(covariant int value) {}
int get covariantField;
void set covariantField(covariant int value) {}
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bc5284c
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/covariant_late_field.dart.textual_outline_modelled.expect
@@ -0,0 +1,27 @@
+abstract class B implements A {
+ get covariantField;
+ get invariantField;
+ set covariantField(value);
+ set invariantField(value);
+}
+
+abstract class C implements A {
+ int get covariantField;
+ int get invariantField;
+ void set covariantField(int value) {}
+ void set invariantField(int value) {}
+}
+
+abstract class D implements A {
+ int get covariantField;
+ int get invariantField;
+ void set covariantField(covariant int value) {}
+ void set invariantField(covariant int value) {}
+}
+
+class A {
+ covariant late num covariantField;
+ late num invariantField;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/duplicates_instance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/duplicates_instance.dart.textual_outline_modelled.expect
index 904d130..6eaba30 100644
--- a/pkg/front_end/testcases/nnbd/duplicates_instance.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/duplicates_instance.dart.textual_outline_modelled.expect
@@ -1,4 +1,9 @@
class Class {
+ final int instanceDuplicateFieldAndDuplicateSetter = 1;
+ final int instanceDuplicateFieldAndDuplicateSetter = 2;
+ final int instanceDuplicateFieldAndSetter = 1;
+ final int instanceDuplicateFieldAndSetter = 2;
+ final int instanceFieldAndDuplicateSetter = 1;
int get instanceGetter => 1;
int get instanceGetter => 2;
int instanceField = 1;
@@ -7,35 +12,25 @@
int instanceFieldAndSetter2 = 1;
int instanceMethod() => 1;
int instanceMethod() => 2;
- void set instanceFieldAndSetter1(int value) {}
- void set instanceFieldAndSetter2(int value) {}
- void set instanceSetter(value) {}
- void set instanceSetter(value) {}
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int instanceLateFinalFieldAndSetter1;
- void set instanceLateFinalFieldAndSetter1(int value) {}
- void set instanceLateFinalFieldAndSetter2(int value) {}
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int instanceDuplicateFieldAndDuplicateSetter = 1;
- final int instanceDuplicateFieldAndDuplicateSetter = 2;
- final int instanceDuplicateFieldAndSetter = 1;
- final int instanceDuplicateFieldAndSetter = 2;
- final int instanceFieldAndDuplicateSetter = 1;
- final int instanceLateFinalFieldAndSetter2;
int instanceMethodAndSetter1() => 1;
int instanceMethodAndSetter2() => 1;
+ late final int instanceLateFinalFieldAndSetter1;
+ late final int instanceLateFinalFieldAndSetter2;
void set instanceDuplicateFieldAndDuplicateSetter(int value) {}
void set instanceDuplicateFieldAndDuplicateSetter(int value) {}
void set instanceDuplicateFieldAndSetter(int value) {}
void set instanceFieldAndDuplicateSetter(int value) {}
void set instanceFieldAndDuplicateSetter(int value) {}
+ void set instanceFieldAndSetter1(int value) {}
+ void set instanceFieldAndSetter2(int value) {}
+ void set instanceLateFinalFieldAndSetter1(int value) {}
+ void set instanceLateFinalFieldAndSetter2(int value) {}
void set instanceMethodAndSetter1(int value) {}
void set instanceMethodAndSetter2(int value) {}
+ void set instanceSetter(value) {}
+ void set instanceSetter(value) {}
}
+
expect(expected, actual) {}
main() {}
test() {}
diff --git a/pkg/front_end/testcases/nnbd/duplicates_instance_extension.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/duplicates_instance_extension.dart.textual_outline.expect
index a945e40..cbf4019 100644
--- a/pkg/front_end/testcases/nnbd/duplicates_instance_extension.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/duplicates_instance_extension.dart.textual_outline.expect
@@ -12,12 +12,10 @@
void set instanceFieldAndSetter1(int value) {}
void set instanceFieldAndSetter2(int value) {}
int instanceFieldAndSetter2 = 1;
- late
- final int instanceLateFinalFieldAndSetter1;
+ late final int instanceLateFinalFieldAndSetter1;
void set instanceLateFinalFieldAndSetter1(int value) {}
void set instanceLateFinalFieldAndSetter2(int value) {}
- late
- final int instanceLateFinalFieldAndSetter2;
+ late final int instanceLateFinalFieldAndSetter2;
final int instanceDuplicateFieldAndSetter = 1;
final int instanceDuplicateFieldAndSetter = 2;
void set instanceDuplicateFieldAndSetter(int value) {}
diff --git a/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline.expect
index d898cdf..c9f0aeb 100644
--- a/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline.expect
@@ -1,4 +1,5 @@
var result;
+
class Class {
static int staticMethod() => 1;
static int staticMethod() => 2;
@@ -12,12 +13,10 @@
static void set staticFieldAndSetter1(int value) {}
static void set staticFieldAndSetter2(int value) {}
static int staticFieldAndSetter2 = 1;
- static late ;
- final int staticLateFinalFieldAndSetter1;
+ static late final int staticLateFinalFieldAndSetter1;
static void set staticLateFinalFieldAndSetter1(int value) {}
static void set staticLateFinalFieldAndSetter2(int value) {}
- static late ;
- final int staticLateFinalFieldAndSetter2;
+ static late final int staticLateFinalFieldAndSetter2;
static final int staticDuplicateFieldAndSetter = 1;
static final int staticDuplicateFieldAndSetter = 2;
static void set staticDuplicateFieldAndSetter(int value) {}
@@ -33,6 +32,7 @@
static void set staticMethodAndSetter2(int value) {}
static int staticMethodAndSetter2() => 1;
}
+
test() {}
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..cd6899a
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/duplicates_static.dart.textual_outline_modelled.expect
@@ -0,0 +1,38 @@
+class Class {
+ static final int staticDuplicateFieldAndDuplicateSetter = 1;
+ static final int staticDuplicateFieldAndDuplicateSetter = 2;
+ static final int staticDuplicateFieldAndSetter = 1;
+ static final int staticDuplicateFieldAndSetter = 2;
+ static final int staticFieldAndDuplicateSetter = 1;
+ static int get staticGetter => 1;
+ static int get staticGetter => 2;
+ static int staticField = 1;
+ static int staticField = 2;
+ static int staticFieldAndSetter1 = 1;
+ static int staticFieldAndSetter2 = 1;
+ static int staticMethod() => 1;
+ static int staticMethod() => 2;
+ static int staticMethodAndSetter1() => 1;
+ static int staticMethodAndSetter2() => 1;
+ static late final int staticLateFinalFieldAndSetter1;
+ static late final int staticLateFinalFieldAndSetter2;
+ static void set staticDuplicateFieldAndDuplicateSetter(int value) {}
+ static void set staticDuplicateFieldAndDuplicateSetter(int value) {}
+ static void set staticDuplicateFieldAndSetter(int value) {}
+ static void set staticFieldAndDuplicateSetter(int value) {}
+ static void set staticFieldAndDuplicateSetter(int value) {}
+ static void set staticFieldAndSetter1(int value) {}
+ static void set staticFieldAndSetter2(int value) {}
+ static void set staticLateFinalFieldAndSetter1(int value) {}
+ static void set staticLateFinalFieldAndSetter2(int value) {}
+ static void set staticMethodAndSetter1(int value) {}
+ static void set staticMethodAndSetter2(int value) {}
+ static void set staticSetter(value) {}
+ static void set staticSetter(value) {}
+}
+
+expect(expected, actual) {}
+main() {}
+test() {}
+throws(dynamic Function() f) {}
+var result;
diff --git a/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline.expect
index f6bcecd..f508a73 100644
--- a/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline.expect
@@ -1,4 +1,5 @@
var result;
+
extension Extension on int {
static int staticMethod() => 1;
static int staticMethod() => 2;
@@ -12,12 +13,10 @@
static void set staticFieldAndSetter1(int value) {}
static void set staticFieldAndSetter2(int value) {}
static int staticFieldAndSetter2 = 1;
- static late ;
- final int staticLateFinalFieldAndSetter1;
+ static late final int staticLateFinalFieldAndSetter1;
static void set staticLateFinalFieldAndSetter1(int value) {}
static void set staticLateFinalFieldAndSetter2(int value) {}
- static late ;
- final int staticLateFinalFieldAndSetter2;
+ static late final int staticLateFinalFieldAndSetter2;
static final int staticDuplicateFieldAndSetter = 1;
static final int staticDuplicateFieldAndSetter = 2;
static void set staticDuplicateFieldAndSetter(int value) {}
@@ -33,6 +32,7 @@
static void set staticMethodAndSetter2(int value) {}
static int staticMethodAndSetter2() => 1;
}
+
test() {}
main() {}
expect(expected, actual) {}
diff --git a/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..764b59f
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/duplicates_static_extension.dart.textual_outline_modelled.expect
@@ -0,0 +1,39 @@
+expect(expected, actual) {}
+
+extension Extension on int {
+ static final int staticDuplicateFieldAndDuplicateSetter = 1;
+ static final int staticDuplicateFieldAndDuplicateSetter = 2;
+ static final int staticDuplicateFieldAndSetter = 1;
+ static final int staticDuplicateFieldAndSetter = 2;
+ static final int staticFieldAndDuplicateSetter = 1;
+ static int get staticGetter => 1;
+ static int get staticGetter => 2;
+ static int staticField = 1;
+ static int staticField = 2;
+ static int staticFieldAndSetter1 = 1;
+ static int staticFieldAndSetter2 = 1;
+ static int staticMethod() => 1;
+ static int staticMethod() => 2;
+ static int staticMethodAndSetter1() => 1;
+ static int staticMethodAndSetter2() => 1;
+ static late final int staticLateFinalFieldAndSetter1;
+ static late final int staticLateFinalFieldAndSetter2;
+ static void set staticDuplicateFieldAndDuplicateSetter(int value) {}
+ static void set staticDuplicateFieldAndDuplicateSetter(int value) {}
+ static void set staticDuplicateFieldAndSetter(int value) {}
+ static void set staticFieldAndDuplicateSetter(int value) {}
+ static void set staticFieldAndDuplicateSetter(int value) {}
+ static void set staticFieldAndSetter1(int value) {}
+ static void set staticFieldAndSetter2(int value) {}
+ static void set staticLateFinalFieldAndSetter1(int value) {}
+ static void set staticLateFinalFieldAndSetter2(int value) {}
+ static void set staticMethodAndSetter1(int value) {}
+ static void set staticMethodAndSetter2(int value) {}
+ static void set staticSetter(value) {}
+ static void set staticSetter(value) {}
+}
+
+main() {}
+test() {}
+throws(dynamic Function() f) {}
+var result;
diff --git a/pkg/front_end/testcases/nnbd/duplicates_toplevel.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/duplicates_toplevel.dart.textual_outline_modelled.expect
index b5d58c1..e35c340 100644
--- a/pkg/front_end/testcases/nnbd/duplicates_toplevel.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/duplicates_toplevel.dart.textual_outline_modelled.expect
@@ -4,8 +4,6 @@
final int topLevelDuplicateFieldAndSetter = 1;
final int topLevelDuplicateFieldAndSetter = 2;
final int topLevelFieldAndDuplicateSetter = 1;
-final int topLevelLateFinalFieldAndSetter1;
-final int topLevelLateFinalFieldAndSetter2;
int get topLevelGetter => 1;
int get topLevelGetter => 2;
int topLevelField = 1;
@@ -14,29 +12,25 @@
int topLevelFieldAndSetter2 = 1;
int topLevelMethod() => 1;
int topLevelMethod() => 2;
-void set topLevelLateFinalFieldAndSetter1(int value) {}
-void set topLevelLateFinalFieldAndSetter2(int value) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
+int topLevelMethodAndSetter1() => 1;
+int topLevelMethodAndSetter2() => 1;
+late final int topLevelLateFinalFieldAndSetter1;
+late final int topLevelLateFinalFieldAndSetter2;
+main() {}
+@topLevelMethod
+test() {}
throws(dynamic Function() f) {}
+var field = topLevelMethod;
var result;
+void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
+void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
void set topLevelDuplicateFieldAndSetter(int value) {}
void set topLevelFieldAndDuplicateSetter(int value) {}
void set topLevelFieldAndDuplicateSetter(int value) {}
void set topLevelFieldAndSetter1(int value) {}
void set topLevelFieldAndSetter2(int value) {}
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int topLevelMethodAndSetter1() => 1;
-int topLevelMethodAndSetter2() => 1;
-main() {}
-@topLevelMethod
-test() {}
-var field = topLevelMethod;
-void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
-void set topLevelDuplicateFieldAndDuplicateSetter(int value) {}
+void set topLevelLateFinalFieldAndSetter1(int value) {}
+void set topLevelLateFinalFieldAndSetter2(int value) {}
void set topLevelMethodAndSetter1(int value) {}
void set topLevelMethodAndSetter2(int value) {}
void set topLevelSetter(value) {}
diff --git a/pkg/front_end/testcases/nnbd/field_vs_setter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/field_vs_setter.dart.textual_outline.expect
index 93febe8..ac91955 100644
--- a/pkg/front_end/testcases/nnbd/field_vs_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/field_vs_setter.dart.textual_outline.expect
@@ -9,11 +9,9 @@
final int? duplicateTopLevelFieldAndSetter2 = null;
int? duplicateTopLevelFieldAndSetter2;
void set duplicateTopLevelFieldAndSetter2(int? value) {}
-late
-final int? topLevelLateFinalFieldAndSetter;
+late final int? topLevelLateFinalFieldAndSetter;
void set topLevelLateFinalFieldAndSetter(int? value) {}
-late
-final int? topLevelLateFinalFieldAndDuplicateSetter;
+late final int? topLevelLateFinalFieldAndDuplicateSetter;
void set topLevelLateFinalFieldAndDuplicateSetter(int? value) {}
void set topLevelLateFinalFieldAndDuplicateSetter(int? value) {}
class Class {
@@ -28,11 +26,9 @@
final int? duplicateInstanceFieldAndSetter2 = null;
int? duplicateInstanceFieldAndSetter2;
void set duplicateInstanceFieldAndSetter2(int? value) {}
- late
- final int? instanceLateFinalFieldAndSetter;
+ late final int? instanceLateFinalFieldAndSetter;
void set instanceLateFinalFieldAndSetter(int? value) {}
- late
- final int? instanceLateFinalFieldAndDuplicateSetter;
+ late final int? instanceLateFinalFieldAndDuplicateSetter;
void set instanceLateFinalFieldAndDuplicateSetter(int? value) {}
void set instanceLateFinalFieldAndDuplicateSetter(int? value) {}
static int? staticFieldAndSetter;
@@ -46,11 +42,9 @@
static final int? duplicateStaticFieldAndSetter2 = null;
static int? duplicateStaticFieldAndSetter2;
static void set duplicateStaticFieldAndSetter2(int? value) {}
- static late ;
- final int? staticLateFinalFieldAndSetter;
+ static late final int? staticLateFinalFieldAndSetter;
static void set staticLateFinalFieldAndSetter(int? value) {}
- static late ;
- final int? staticLateFinalFieldAndDuplicateSetter;
+ static late final int? staticLateFinalFieldAndDuplicateSetter;
static void set staticLateFinalFieldAndDuplicateSetter(int? value) {}
static void set staticLateFinalFieldAndDuplicateSetter(int? value) {}
static int? staticFieldAndInstanceSetter;
@@ -99,11 +93,9 @@
static final int? duplicateExtensionStaticFieldAndSetter2 = null;
static int? duplicateExtensionStaticFieldAndSetter2;
static void set duplicateExtensionStaticFieldAndSetter2(int? value) {}
- static late ;
- final int? extensionStaticLateFinalFieldAndSetter;
+ static late final int? extensionStaticLateFinalFieldAndSetter;
static void set extensionStaticLateFinalFieldAndSetter(int? value) {}
- static late ;
- final int? extensionStaticLateFinalFieldAndDuplicateSetter;
+ static late final int? extensionStaticLateFinalFieldAndDuplicateSetter;
static void set extensionStaticLateFinalFieldAndDuplicateSetter(int? value) {}
static void set extensionStaticLateFinalFieldAndDuplicateSetter(int? value) {}
static int? extensionStaticFieldAndInstanceSetter;
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline.expect
index 2470729..80e8244 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline.expect
@@ -1,38 +1,34 @@
abstract class A {
- late
- int property4;
- late
- int? property5;
- covariant late int ;
- property6;
+ late int property4;
+ late int? property5;
+ covariant late int property6;
A(this.property4, this.property5, this.property6);
}
+
abstract class B1 {
- late
- final int property4;
- late
- final int property5;
- late
- final int? property6;
+ late final int property4;
+ late final int property5;
+ late final int? property6;
B1(this.property4, this.property5, this.property6);
}
+
abstract class B2 implements B1 {
void set property4(int i);
void set property5(int? i);
void set property6(int i);
}
+
abstract class C1 {
- late
- int property4;
- late
- int property5;
- late
- int property6;
+ late int property4;
+ late int property5;
+ late int property6;
C1(this.property4, this.property5, this.property6);
}
+
abstract class C2 implements C1 {
int get property4;
int get property5;
int? get property6;
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c07c6aa
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_late.dart.textual_outline_modelled.expect
@@ -0,0 +1,34 @@
+abstract class A {
+ A(this.property4, this.property5, this.property6);
+ covariant late int property6;
+ late int? property5;
+ late int property4;
+}
+
+abstract class B1 {
+ B1(this.property4, this.property5, this.property6);
+ late final int? property6;
+ late final int property4;
+ late final int property5;
+}
+
+abstract class B2 implements B1 {
+ void set property4(int i);
+ void set property5(int? i);
+ void set property6(int i);
+}
+
+abstract class C1 {
+ C1(this.property4, this.property5, this.property6);
+ late int property4;
+ late int property5;
+ late int property6;
+}
+
+abstract class C2 implements C1 {
+ int? get property6;
+ int get property4;
+ int get property5;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline.expect
index f2867b2..ec1d8d5 100644
--- a/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline.expect
@@ -1,8 +1,9 @@
main() {}
+
class C {
- covariant late ;
- final int x;
+ covariant late final int x;
}
+
class D extends C {
set x(num value) {}
}
diff --git a/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..f06b890
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/issue40805.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+class C {
+ covariant late final int x;
+}
+
+class D extends C {
+ set x(num value) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue42967.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/issue42967.dart.textual_outline_modelled.expect
index 284430e8..3c5f3a7 100644
--- a/pkg/front_end/testcases/nnbd/issue42967.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/issue42967.dart.textual_outline_modelled.expect
@@ -4,51 +4,37 @@
external final dynamic fieldExternalFinalDynamicOfAbstractA;
external num fieldExternalNonNullableOfAbstractA;
}
+
abstract class AbstractB {
abstract final dynamic fieldAbstractFinalDynamicOfAbstractB;
abstract num fieldAbstractNonNullableOfAbstractB;
external final dynamic fieldExternalFinalDynamicOfAbstractB;
external num fieldExternalNonNullableOfAbstractB;
}
+
class A {
- num fieldNonNullableOfA;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
final dynamic fieldFinalDynamicOfA;
- num fieldLateNonNullableOfA;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final dynamic fieldLateFinalDynamicOfA;
+ late final dynamic fieldLateFinalDynamicOfA;
+ late num fieldLateNonNullableOfA;
+ num fieldNonNullableOfA;
}
+
class B {
- num fieldNonNullableOfB;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final dynamic fieldFinalDynamicOfB;
- num fieldLateNonNullableOfB;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
factory B() => throw 42;
- final dynamic fieldLateFinalDynamicOfB;
+ final dynamic fieldFinalDynamicOfB;
+ late final dynamic fieldLateFinalDynamicOfB;
+ late num fieldLateNonNullableOfB;
+ num fieldNonNullableOfB;
}
+
main() {}
mixin M {
- num fieldNonNullableOfM;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
+ abstract final dynamic fieldAbstractFinalDynamicOfM;
abstract num fieldAbstractNonNullableOfM;
+ external final dynamic fieldExternalFinalDynamicOfM;
external num fieldExternalNonNullableOfM;
final dynamic fieldFinalDynamicOfM;
- num fieldLateNonNullableOfM;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- abstract final dynamic fieldAbstractFinalDynamicOfM;
- external final dynamic fieldExternalFinalDynamicOfM;
- final dynamic fieldLateFinalDynamicOfM;
+ late final dynamic fieldLateFinalDynamicOfM;
+ late num fieldLateNonNullableOfM;
+ num fieldNonNullableOfM;
}
diff --git a/pkg/front_end/testcases/nnbd/issue43354.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/issue43354.dart.textual_outline_modelled.expect
index 8e86312..cd9e6d4 100644
--- a/pkg/front_end/testcases/nnbd/issue43354.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/issue43354.dart.textual_outline_modelled.expect
@@ -1,39 +1,25 @@
class A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
const A();
- final int foo = 42;
+ late final int foo = 42;
}
+
class B {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int foo = 42;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
const B();
- final String bar = "foobar";
+ late final String bar = "foobar";
+ late final int foo = 42;
}
+
class C {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
const C();
const C.another();
- final int foo = 42;
+ late final int foo = 42;
}
+
class D {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- final int foo = 42;
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
const D();
const D.another();
- final String bar = "foobar";
+ late final String bar = "foobar";
+ late final int foo = 42;
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd/issue43689.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/issue43689.dart.textual_outline_modelled.expect
index 400ab13..9917b71 100644
--- a/pkg/front_end/testcases/nnbd/issue43689.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/issue43689.dart.textual_outline_modelled.expect
@@ -1,10 +1,4 @@
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int y;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-final int? y;
+late final int? y;
+late final int y;
main() {}
test() {}
diff --git a/pkg/front_end/testcases/nnbd/late.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/late.dart.textual_outline.expect
index 78b3d91..aede912 100644
--- a/pkg/front_end/testcases/nnbd/late.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/late.dart.textual_outline.expect
@@ -1,33 +1,22 @@
-late
-int lateTopLevelField;
-late
-final int lateFinalTopLevelField;
-late
-final int lateFinalTopLevelFieldWithInit = 0;
+late int lateTopLevelField;
+late final int lateFinalTopLevelField;
+late final int lateFinalTopLevelFieldWithInit = 0;
+
class Class {
- late
- int lateInstanceField;
- late
- final int lateFinalInstanceField1;
- late
- final int lateFinalInstanceField2;
- late
- final int lateFinalInstanceFieldWithInit = 0;
- late
- Class lateInstanceFieldThis = this;
- late
- final Class lateFinalInstanceFieldThis = this;
- static late int ;
- lateStaticField;
- static late ;
- final int lateFinalStaticField1;
- static late ;
- final int lateFinalStaticField2;
- static late ;
- final int lateFinalStaticFieldWithInit = 0;
+ late int lateInstanceField;
+ late final int lateFinalInstanceField1;
+ late final int lateFinalInstanceField2;
+ late final int lateFinalInstanceFieldWithInit = 0;
+ late Class lateInstanceFieldThis = this;
+ late final Class lateFinalInstanceFieldThis = this;
+ static late int lateStaticField;
+ static late final int lateFinalStaticField1;
+ static late final int lateFinalStaticField2;
+ static late final int lateFinalStaticFieldWithInit = 0;
method() {}
methodWithErrors() {}
}
+
main() {}
noErrors() {}
errors() {}
diff --git a/pkg/front_end/testcases/nnbd/late.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/late.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..16f1f6d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/late.dart.textual_outline_modelled.expect
@@ -0,0 +1,21 @@
+class Class {
+ late Class lateInstanceFieldThis = this;
+ late final Class lateFinalInstanceFieldThis = this;
+ late final int lateFinalInstanceField1;
+ late final int lateFinalInstanceField2;
+ late final int lateFinalInstanceFieldWithInit = 0;
+ late int lateInstanceField;
+ method() {}
+ methodWithErrors() {}
+ static late final int lateFinalStaticField1;
+ static late final int lateFinalStaticField2;
+ static late final int lateFinalStaticFieldWithInit = 0;
+ static late int lateStaticField;
+}
+
+errors() {}
+late final int lateFinalTopLevelField;
+late final int lateFinalTopLevelFieldWithInit = 0;
+late int lateTopLevelField;
+main() {}
+noErrors() {}
diff --git a/pkg/front_end/testcases/nnbd/later.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/later.dart.textual_outline.expect
index d06dcad..046bb90 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.textual_outline.expect
@@ -1,7 +1,6 @@
class A {
int a = 42;
- late
- int b = (this.a * 2) >> 1;
+ late int b = (this.a * 2) >> 1;
foo(late int x) {}
}
bar(late int x) {}
@@ -9,13 +8,11 @@
hest() async {}
fisk() async {}
class B {
- late
- final int x = 42;
+ late final int x = 42;
const B();
}
class C {
- late
- final int x;
+ late final int x;
initVars() {}
}
main() {}
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline.expect
index 98dd013..0d2bac1 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline.expect
@@ -1,17 +1,21 @@
class Foo {}
+
int topLevelField;
+
class A {
static int staticFieldOfA;
int fieldOfA;
A.foo();
A.bar(this.fieldOfA);
}
+
class B<X extends Object?, Y extends Object> {
X fieldOfB;
Y fieldOfB2;
B.foo();
B.bar(this.fieldOfB, this.fieldOfB2);
}
+
mixin M {
static int staticFieldOfM;
int fieldOfM;
@@ -20,13 +24,15 @@
X fieldOfN;
Y fieldOfN2;
}
+
extension P on Foo {
static int staticFieldOfE;
}
+
int? nullableTopLevelField;
-late
-int lateTopLevelField;
+late int lateTopLevelField;
int topLevelFieldWithInitializer = 42;
+
class C<X extends Object?, Y extends Object> {
static int? staticFieldOfX;
static int staticFieldOfXInitialized = 42;
@@ -36,18 +42,15 @@
Null fieldOfX4;
int Function()? fieldOfX5;
Y? fieldOfX6;
- static late int ;
- lateStaticFieldOfC;
- late
- int fieldOfC7;
- late
- X fieldOfC8;
- late
- Y fieldOfC9;
+ static late int lateStaticFieldOfC;
+ late int fieldOfC7;
+ late X fieldOfC8;
+ late Y fieldOfC9;
int fieldOfC10;
C.foo(this.fieldOfC10);
C.bar(this.fieldOfC10);
}
+
mixin L<X extends Object?, Y extends Object> {
static int? staticFieldOfL;
static int staticFieldOfLInitialized = 42;
@@ -57,19 +60,16 @@
Null fieldOfL4;
int Function()? fieldOfL5;
Y? fieldOfL6;
- static late int ;
- lateStaticFieldOfM;
- late
- int fieldOfM7;
- late
- X fieldOfM8;
- late
- Y fieldOfM9;
+ static late int lateStaticFieldOfM;
+ late int fieldOfM7;
+ late X fieldOfM8;
+ late Y fieldOfM9;
}
+
extension Q on Foo {
static int? staticFieldOfQ;
- static late int ;
- lateStaticFieldOfQ;
+ static late int lateStaticFieldOfQ;
static int staticFieldOfQInitialized = 42;
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..589a538f
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.textual_outline_modelled.expect
@@ -0,0 +1,71 @@
+class A {
+ A.bar(this.fieldOfA);
+ A.foo();
+ int fieldOfA;
+ static int staticFieldOfA;
+}
+
+class B<X extends Object?, Y extends Object> {
+ B.bar(this.fieldOfB, this.fieldOfB2);
+ B.foo();
+ X fieldOfB;
+ Y fieldOfB2;
+}
+
+class C<X extends Object?, Y extends Object> {
+ C.bar(this.fieldOfC10);
+ C.foo(this.fieldOfC10);
+ Null fieldOfX4;
+ X? fieldOfX;
+ Y? fieldOfX6;
+ dynamic fieldOfX3;
+ int? fieldOfX2;
+ int Function()? fieldOfX5;
+ int fieldOfC10;
+ late X fieldOfC8;
+ late Y fieldOfC9;
+ late int fieldOfC7;
+ static int? staticFieldOfX;
+ static int staticFieldOfXInitialized = 42;
+ static late int lateStaticFieldOfC;
+}
+
+class Foo {}
+
+extension P on Foo {
+ static int staticFieldOfE;
+}
+
+extension Q on Foo {
+ static int? staticFieldOfQ;
+ static int staticFieldOfQInitialized = 42;
+ static late int lateStaticFieldOfQ;
+}
+
+int? nullableTopLevelField;
+int topLevelField;
+int topLevelFieldWithInitializer = 42;
+late int lateTopLevelField;
+main() {}
+mixin L<X extends Object?, Y extends Object> {
+ Null fieldOfL4;
+ X? fieldOfL;
+ Y? fieldOfL6;
+ dynamic fieldOfL3;
+ int? fieldOfL2;
+ int Function()? fieldOfL5;
+ late X fieldOfM8;
+ late Y fieldOfM9;
+ late int fieldOfM7;
+ static int? staticFieldOfL;
+ static int staticFieldOfLInitialized = 42;
+ static late int lateStaticFieldOfM;
+}
+mixin M {
+ int fieldOfM;
+ static int staticFieldOfM;
+}
+mixin N<X extends Object?, Y extends Object> {
+ X fieldOfN;
+ Y fieldOfN2;
+}
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline.expect
index 82cafac..5b4ef28 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline.expect
@@ -1,24 +1,24 @@
int x;
int? y;
-late
-int z;
+late int z;
+
class A<T extends Object?> {
static int x;
static int? y;
- static late int ;
- z;
+ static late int z;
int lx;
int? ly;
- late
- int? lz;
+ late int? lz;
int lv;
int lu;
T lt;
T? ls;
- late
- T lr;
+ late T lr;
T lp;
T lq;
- A(this.lv, this.lp, T t) : this.lu = 42, this.lq = t;
+ A(this.lv, this.lp, T t)
+ : this.lu = 42,
+ this.lq = t;
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9605c20
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.textual_outline_modelled.expect
@@ -0,0 +1,23 @@
+class A<T extends Object?> {
+ A(this.lv, this.lp, T t)
+ : this.lu = 42,
+ this.lq = t;
+ T? ls;
+ T lp;
+ T lq;
+ T lt;
+ int? ly;
+ int lu;
+ int lv;
+ int lx;
+ late T lr;
+ late int? lz;
+ static int? y;
+ static int x;
+ static late int z;
+}
+
+int? y;
+int x;
+late int z;
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
index 16afc20..7ac9d0c 100644
--- a/pkg/front_end/testcases/nnbd/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd/uninitialized_non_nullable_late_fields.dart.textual_outline_modelled.expect
@@ -1,9 +1,7 @@
class A {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
A.bar();
A.foo(this.x);
- int x;
+ late int x;
}
+
main() {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.textual_outline_modelled.expect
index 83adde2..28d9837 100644
--- a/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.textual_outline_modelled.expect
@@ -1,20 +1,18 @@
// @dart = 2.12
import 'opt_out_lib.dart';
+
List<String?> l = [];
String? s = null;
+
class A<T> {
- ---- unknown chunk starts ----
-late
----- unknown chunk ends ----
- int field = 42;
+ late int field = 42;
}
+
class B extends A<String?> {}
-typedef F = void Function()?;
-var t = s!;
----- unknown chunk starts ----
-late
----- unknown chunk ends ----
-int field = 42;
+
+late int field = 42;
main() {}
noErrors() {}
+typedef F = void Function()?;
+var t = s!;
void method(void f()?, {required int a}) {}
diff --git a/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect
deleted file mode 100644
index d41cad3..0000000
--- a/pkg/front_end/testcases/regress/issue_31188.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,2 +0,0 @@
-main() {}
-type T = Map<A, B>;
diff --git a/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
index 1bbd124..eb6614e 100644
--- a/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31192.dart.textual_outline.expect
@@ -1,6 +1,5 @@
class Increment {
- late
- int x;
+ late int x;
Increment() : =x++ {}
}
main() {}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 24f427a..7be4428 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -20,14 +20,12 @@
regress/issue_39091_2: EmptyOutput
regress/utf_16_le_content.crash: EmptyOutput
-const_functions/const_functions_const_ctor: FormatterCrash
const_functions/const_functions_const_ctor_error: FormatterCrash
+const_functions/const_functions_const_ctor: FormatterCrash
const_functions/const_functions_const_factory: FormatterCrash
constructor_tearoffs/issue46133: FormatterCrash
constructor_tearoffs/issue47075: FormatterCrash
constructor_tearoffs/new_as_selector: FormatterCrash
-dart2js/late_fields: FormatterCrash
-dart2js/late_statics: FormatterCrash
enhanced_enums/recovery_in_elements: FormatterCrash
extension_types/basic_show: FormatterCrash
extension_types/call_not_get: FormatterCrash
@@ -39,8 +37,8 @@
extension_types/simple_operator_resolution: FormatterCrash
extension_types/simple_setter_resolution: FormatterCrash
extension_types/simple_show_and_hide: FormatterCrash
-extension_types/simple_show_hide: FormatterCrash
extension_types/simple_show_hide_conflicts: FormatterCrash
+extension_types/simple_show_hide: FormatterCrash
extension_types/type_variable_in_static_context: FormatterCrash
extension_types/various_hide_elements: FormatterCrash
extension_types/various_show_elements: FormatterCrash
@@ -53,15 +51,14 @@
general/bad_setter_abstract: FormatterCrash
general/bug31124: FormatterCrash
general/clone_function_type: FormatterCrash
-general/constants/js_semantics/number_folds: FormatterCrash
general/constants/js_semantics/number_folds_opt_out: FormatterCrash
+general/constants/js_semantics/number_folds: FormatterCrash
general/constants/non_const_constructor: FormatterCrash
-general/constants/number_folds: FormatterCrash
general/constants/number_folds_opt_out: FormatterCrash
-general/constants/various2: FormatterCrash
+general/constants/number_folds: FormatterCrash
general/constants/various: FormatterCrash
+general/constants/various2: FormatterCrash
general/constructor_initializer_invalid: FormatterCrash
-general/covariant_generic2: FormatterCrash
general/duplicated_declarations: FormatterCrash
general/enum_super_constructor: FormatterCrash
general/error_recovery/annotations: FormatterCrash
@@ -85,9 +82,10 @@
general/extension_types_feature_not_enabled: FormatterCrash
general/function_type_default_value: FormatterCrash
general/incomplete_field_formal_parameter: FormatterCrash
-general/invalid_operator2: FormatterCrash
general/invalid_operator: FormatterCrash
+general/invalid_operator2: FormatterCrash
general/invalid_super_initializer: FormatterCrash
+general/issue_46886: FormatterCrash
general/issue41842: FormatterCrash
general/issue42997: FormatterCrash
general/issue43363: FormatterCrash
@@ -99,90 +97,35 @@
general/issue48487: FormatterCrash
general/issue48487b: FormatterCrash
general/issue48919: FormatterCrash
-general/issue_46886: FormatterCrash
general/macro_class: FormatterCrash
-general/many_errors2: FormatterCrash
general/many_errors: FormatterCrash
+general/many_errors2: FormatterCrash
general/missing_prefix_name: FormatterCrash
-general/mixin_inherited_setter_for_mixed_in_field2: FormatterCrash
general/new_as_selector: FormatterCrash
general/null_aware_super: FormatterCrash
-general/null_safety_invalid_experiment: FormatterCrash
general/null_safety_invalid_experiment_and_language_version: FormatterCrash
-general/type_parameter_type_named_int: FormatterCrash
-general/type_parameter_usage_in_static_method_in_class: FormatterCrash
-general/type_parameter_usage_in_static_method_in_extension: FormatterCrash
+general/null_safety_invalid_experiment: FormatterCrash
general/type_parameters_on_void: FormatterCrash
general/type_variable_in_static_context: FormatterCrash
general/var_as_type_name: FormatterCrash
inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1: FormatterCrash
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1: FormatterCrash
-late_lowering/covariant_late_field: FormatterCrash
-late_lowering/getter_vs_setter_type: FormatterCrash
-late_lowering/infer_late_field_type: FormatterCrash
-late_lowering/initializer_rewrite: FormatterCrash
-late_lowering/initializer_rewrite_from_opt_out: FormatterCrash
-late_lowering/instance_field_with_initializer: FormatterCrash
-late_lowering/instance_field_without_initializer: FormatterCrash
-late_lowering/instance_final_field_without_initializer: FormatterCrash
-late_lowering/instance_nullable_field_with_initializer: FormatterCrash
-late_lowering/instance_nullable_field_without_initializer: FormatterCrash
-late_lowering/instance_nullable_final_field_without_initializer: FormatterCrash
-late_lowering/issue40373: FormatterCrash
-late_lowering/issue40373b: FormatterCrash
-late_lowering/issue40805: FormatterCrash
-late_lowering/issue41436b: FormatterCrash
-late_lowering/issue41922: FormatterCrash
-late_lowering/issue42407: FormatterCrash
-late_lowering/late_annotations: FormatterCrash
-late_lowering/late_field_inference: FormatterCrash
-late_lowering/late_field_with_initializer: FormatterCrash
-late_lowering/late_field_without_initializer: FormatterCrash
-late_lowering/late_final_field_with_initializer: FormatterCrash
-late_lowering/late_final_field_without_initializer: FormatterCrash
-late_lowering/late_final_nullable_field_with_initializer: FormatterCrash
-late_lowering/late_final_nullable_field_without_initializer: FormatterCrash
-late_lowering/late_future_or: FormatterCrash
-late_lowering/late_lowering_bitmasks: FormatterCrash
-late_lowering/late_nullable_field_with_initializer: FormatterCrash
-late_lowering/late_nullable_field_without_initializer: FormatterCrash
-late_lowering/late_override: FormatterCrash
late_lowering/later: FormatterCrash
-late_lowering/override: FormatterCrash
-late_lowering/override_getter_setter: FormatterCrash
-late_lowering/skip_late_final_uninitialized_instance_fields/main: FormatterCrash
-late_lowering/uninitialized_non_nullable_late_fields: FormatterCrash
macros/augment_class: FormatterCrash
macros/augment_super: FormatterCrash
macros/class_members: FormatterCrash
macros/inject_constructor: FormatterCrash
macros/macro_class: FormatterCrash
macros/multiple_imports: FormatterCrash
-nnbd/abstract_field_errors: FormatterCrash
-nnbd/covariant_late_field: FormatterCrash
-nnbd/duplicates_instance: FormatterCrash
-nnbd/duplicates_instance_extension: FormatterCrash
-nnbd/duplicates_static: FormatterCrash
-nnbd/duplicates_static_extension: FormatterCrash
-nnbd/field_vs_setter: FormatterCrash
-nnbd/forbidden_supers: FormatterCrash
-nnbd/getter_vs_setter_type_late: FormatterCrash
-nnbd/issue40805: FormatterCrash
-nnbd/issue41597: FormatterCrash
-nnbd/issue42967: FormatterCrash
-nnbd/issue43354: FormatterCrash
-nnbd/late: FormatterCrash
-nnbd/later: FormatterCrash
-nnbd/no_null_shorting_explicit_extension: FormatterCrash
-nnbd/no_null_shorting_extension: FormatterCrash
-nnbd/non_nullable_field_initialization: FormatterCrash
-nnbd/nonfield_vs_setter: FormatterCrash
-nnbd/opt_out: FormatterCrash
-nnbd/potentially_non_nullable_field: FormatterCrash
-nnbd/uninitialized_non_nullable_late_fields: FormatterCrash
nnbd_mixed/inheritance_from_opt_in: FormatterCrash
nnbd_mixed/issue41597: FormatterCrash
nnbd_mixed/null_safety_invalid_language_version: FormatterCrash
+nnbd/abstract_field_errors: FormatterCrash
+nnbd/duplicates_instance_extension: FormatterCrash
+nnbd/field_vs_setter: FormatterCrash
+nnbd/forbidden_supers: FormatterCrash
+nnbd/later: FormatterCrash
+nnbd/nonfield_vs_setter: FormatterCrash
nonfunction_type_aliases/old_version: FormatterCrash
rasta/bad_redirection: FormatterCrash
rasta/issue_000032: FormatterCrash
diff --git a/pkg/front_end/testcases/triple_shift/invalid_operator.dart.textual_outline.expect b/pkg/front_end/testcases/triple_shift/invalid_operator.dart.textual_outline.expect
index 7faa576..d614446 100644
--- a/pkg/front_end/testcases/triple_shift/invalid_operator.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/triple_shift/invalid_operator.dart.textual_outline.expect
@@ -1,22 +1,22 @@
class Operators1 {
- operator >>> () => true;
+ operator >>>() => true;
}
class Operators2 {
- operator >>> (a, b) => true;
+ operator >>>(a, b) => true;
}
class Operators3 {
- operator >>> ([a]) => true;
+ operator >>>([a]) => true;
}
class Operators4 {
- operator >>> ({a}) => true;
+ operator >>>({a}) => true;
}
class Operators5 {
- operator >>> (a, [b]) => true;
+ operator >>>(a, [b]) => true;
}
class Operators6 {
- operator >>> (a, {b}) => true;
+ operator >>>(a, {b}) => true;
}
class Operators7 {
- operator >>> <T>(a) => true;
+ operator >>><T>(a) => true;
}
main() {}
diff --git a/tools/VERSION b/tools/VERSION
index 5447454..05a2446 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 18
PATCH 0
-PRERELEASE 211
+PRERELEASE 212
PRERELEASE_PATCH 0
\ No newline at end of file